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<BsonDocument>("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<BsonDocument>.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<BsonDocument>.Filter.ElemMatch<BsonValue>(
"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<BsonDocument>.Sort.Descending("student_id");
var highestScores = collection.Find(highExamScoreFilter).Sort(sort);
/*****更新*****/
var filterId = Builders<BsonDocument>.Filter.Eq("student_id", 10000);
var update = Builders<BsonDocument>.Update.Set("class_id", 483);
collection.UpdateOne(filterId, update);
//更新数组中数据
var arrayFilter = Builders<BsonDocument>.Filter.Eq("student_id", 10000)
& Builders<BsonDocument>.Filter.Eq("scores.type", "exam");
var arrayUpdate = Builders<BsonDocument>.Update.Set("scores.$.score", 100);
collection.UpdateOne(arrayFilter, arrayUpdate);
/*****删除*****/
var deleteFilter = Builders<BsonDocument>.Filter.Eq("student_id", 10000);
collection.DeleteOne(deleteFilter);
//删除多条
var deleteLowExamFilter = Builders<BsonDocument>.Filter.ElemMatch<BsonValue>("scores",
new BsonDocument { { "type", "exam" }, {"score", new BsonDocument { { "$lt", 60 }}}
});
collection.DeleteMany(deleteLowExamFilter);
}
}
}