1、安装引用MongoDB.Driver
1)使用Nuget界面管理器
直接搜索 "MongoDB.Driver",找到对应的点安装即可。
相关文档:VS(Visual Studio)中Nuget的使用
2)使用Package Manager命令安装
PM> Install-Package MongoDB.Driver
3)使用.NET CLI命令安装
> dotnet add package MongoDB.Driver
2、配置MongoDB的连接字符串
MongoDB中配置连接对象,可以使用帐号和密码验证,也可以不用,相关配置代码如下,
1)不验证帐号和密码
var client = new MongoClient("mongodb://localhost:27017");
2)验证帐号和密码
var client = new MongoClient("mongodb://localhost:27017");string user = "root";string password = "Aa123456";var credential = MongoCredential.CreateMongoCRCredential("admin", user, password);var settings = new MongoClientSettings { Credentials = new[] { credential } };var mongoClient = new MongoClient(settings);
3、MongoDB中数据常用操作
MongoDB中增、删、改、查常用操作,可以参考如下代码:
using System;using MongoDB.Bson;using MongoDB.Driver;namespace MongoDBCRUDExample{ class Program { static void Main(string[] args) { var client = new MongoClient("mongodb://localhost:27017"); /* var client = new MongoClient("mongodb://localhost:27017"); string password = "Aa123456"; var credential = MongoCredential.CreateMongoCRCredential("admin", user, password); var settings = new MongoClientSettings { Credentials = new[] { credential } }; var mongoClient = new MongoClient(settings); */ /*****新增*****/ var database = client.GetDatabase("MyDB"); var collection = database.GetCollection("students"); var document = new BsonDocument { { "student_id", 10000 }, { "scores", new BsonArray { new BsonDocument { { "type", "exam" }, { "score", 88.12334193287023 } }, new BsonDocument { { "type", "math" }, { "score", 74.92381029342834 } }, new BsonDocument { { "type", "homework" }, { "score", 89.97929384290324 } }, new BsonDocument { { "type", "homework" }, { "score", 82.12931030513218 } } } }, { "class_id", 480 } }; collection.InsertOne(document); // await collection.InsertOneAsync(document);//异步操作 /*****查询*****/ var filter = Builders .Filter.Eq("student_id", 10000); var studentDocument = collection.Find(filter).FirstOrDefault(); Console.WriteLine(studentDocument.ToString()); var documents = collection.Find(new BsonDocument()).ToList(); foreach (BsonDocument doc in documents) { Console.WriteLine(doc.ToString()); } //条件查询 var highExamScoreFilter = Builders .Filter.ElemMatch ("scores", new BsonDocument { { "type", "exam" },{ "score", new BsonDocument { { "$gte", 95 } } }}); var highExamScores = collection.Find(highExamScoreFilter).ToList(); //数据量比较大 var cursor = collection.Find(highExamScoreFilter).ToCursor(); foreach (var doc in cursor.ToEnumerable()) { Console.WriteLine(doc); } //或者 //await collection.Find(highExamScoreFilter) //.ForEachAsync(document => Console.WriteLine(document)); //结果排序 var sort = Builders .Sort.Descending("student_id"); var highestScores = collection.Find(highExamScoreFilter).Sort(sort); /*****更新*****/ var filterId = Builders .Filter.Eq("student_id", 10000); var update = Builders .Update.Set("class_id", 483); collection.UpdateOne(filterId, update); //更新数组中数据 var arrayFilter = Builders .Filter.Eq("student_id", 10000) & Builders .Filter.Eq("scores.type", "exam"); var arrayUpdate = Builders .Update.Set("scores.$.score", 100); collection.UpdateOne(arrayFilter, arrayUpdate); /*****删除*****/ var deleteFilter = Builders .Filter.Eq("student_id", 10000); collection.DeleteOne(deleteFilter); //删除多条 var deleteLowExamFilter = Builders .Filter.ElemMatch ("scores", new BsonDocument { { "type", "exam" }, {"score", new BsonDocument { { "$lt", 60 }}}}); collection.DeleteMany(deleteLowExamFilter); } }}