MongoDB3.2(C#版) CRUD

Retrieve(检索、查询):
分两种(一种是插入对象没有自定义; 第二种就是自定义插入对象)
这两种情况下的区别就是插入数据库中的文档类型不一样,一个是BsonDocument,一个是自定义对象(下面会有例子),分别使用两种不同的方式
Create(添加)
Untyped Documents
using MongoDB.Bson;
using MongoDB.Driver;
 
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("MyDb");
var collection = client.GetCollection<BsonDocument>("MyCollection");
 
await collection.InsertOneAsync(new BsonDocument("Name", "Tommy"));
//如果此处你的函数不是异步的,就不写await,写的话会报错,如果你想写的话就自己写个异步函数,这样的话就没问题了。官网建议使用异步方式。想想也知道异步好一些啊!
//异步函数写法就是public async void Insert(){}
var list = await collection.Find(new BsonDocument("Name", "Tommy")).ToListAsync();
 
foreach(var document in list)
{
   Console.WriteLine(document["Name"]);
}
 
 
Typed Documents
using MongoDB.Bson;
using MongoDB.Driver;
 
public class Person
{
     public ObjectId Id { get; set; }
     //此处的ObjectId类型的属性一定要加,不然在查询的时候会报错,因为数据库中在添加文档的时候会自动添加一个ObjectId类型的_id元素,这个是MongoDB数据库的特点。
     //个人觉得就像我们其它的关系型数据库的主键一样
     public string Name { get; set; }
     public string Address { get; set; }
}
 
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("MyDb");
var collection = client.GetCollection<Person>("MyCollection");
//注意此处使用的是Person与上面的BsonDocument对应,由于此处 的GetCollection<T>方法是MongoDB自己封装的方法,是泛型的。
 
await collection.InsertOneAsync(new Person { Name = "Tommy" });
var list = await collection.Find(x => x.Name == "Tommy").ToListAsync();
//此处的查询还有另外一种方法,就是使用var filter = Builders<Person>.Filter.Eq(<field>, <value>);
//例如:var filter = Builders<Person>.Filter.Eq("Name", "Tommy");var list = await collection.Find(filter).ToListAsync();
foreach(var person in list)
{
     Console.WriteLine(person.Name);
}
 
下面介绍一下U(Update)和D(Delete)
U更新:
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("MyDb");
var collection = database.GetCollection<Person>("MyCollection");
var filter = Builders<Person >.Filter.Eq("Name", "Tommy");
var update = Builders<Person >.Update.Set("Address" , "AnhuiAnqing");
//当然此处使用的都是Person类,你也可以使用BsonDocument;但是在项目开发中基本都是自己定义的类。
var result = await collection.UpdateOneAsync(filter, update);
 
D删除:
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("MyDb");
var collection = database.GetCollection<Person>("MyCollection");
var filter = Builders<Person >.Filter.Eq("Name", "Tommy");
var result = await collection.DeleteManyAsync(filter);

转载于:https://www.cnblogs.com/joyang/p/5048040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值