使用MongoDB Driver
它是 MongoDB 的官方驱动程序,提供了在 .NET 中操作 MongoDB 的功能。
在Nuget包管理器中下载即可,其他编译器找到相关链接库部分就行。
此下示例均采用同步模式,并只更新一个。多个操作时将One改成Many。
已 查找为例,实现异步。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public async void FindAsync() { FilterDefinition<BsonDocument> filterDefinition = Builders<BsonDocument>.Filter.Eq("HP", 50);
var documents = await collection.FindAsync(filterDefinition); foreach (var document in documents.ToEnumerable()) { Console.WriteLine($"HP: {document["HP"]}, atk: {document["atk"]}"); } }
Mongo mongo = new Mongo(); mongo.FindAsync();
|
Connect Database
1 2
| MongoClient client = new MongoClient("mongodb://127.0.0.1:27017"); IMongoDatabase mongo = client.GetDatabase("DatabaseName");
|
Insert Data
1 2 3 4 5 6 7 8 9 10
| IMongoCollection<BsonDocument> collection = mongo.GetCollection<BsonDocument>("player"); BsonDocument filter = new BsonDocument {
{ "id","12345"}, {"data",abc }, { "ip","127.0.0.1"} }; collection.InsertOne(filter);
|
Delete Data
1 2 3 4 5
| FilterDefinition<BsonDocument> file = Builders<BsonDocument>.Filter.Eq("id", "12345");
collection.DeleteOne(file); collection.DeleteMany(file);
|
Update Data
1 2 3 4 5 6 7 8 9
| FilterDefinition<BsonDocument> filter = Builders<BsonDocument>.Filter.Eq("name", "John");
UpdateDefinition<BsonDocument> update = Builders<BsonDocument>.Update.Set("age", 30).Set("ip", "127.0.0.1");
UpdateResult result = await collection.UpdateManyAsync(filter, update); collection.UpdateMany(filter, update);
|
Check Data
1 2 3 4 5 6 7 8 9 10 11 12 13
| FilterDefinition<BsonDocument> filterDefinition = Builders<BsonDocument>.Filter.Where( x => x["_id"] == id && x["pw"] == pw); FilterDefinition<BsonDocument> file = Builders<BsonDocument>.Filter.Eq("id", "12345"); List<BsonDocument> list = collection.Find(file).ToList();
foreach (var doc in list) { Console.WriteLine(doc); }
list[0]["data"].ToString()
|
查找相关条件的数量
1 2
| FilterDefinition<BsonDocument> file = Builders<BsonDocument>.Filter.Eq("id", "12345"); int count=collection.CountDocuments(findDefinition)
|
更新整个实体类
1 2
| FilterDefinition<BsonDocument> file = Builders<BsonDocument>.Filter.Eq("id", "12345"); collection.ReplaceOne(filterDefinition, app);
|