MongoDB简单使用 —— 基本操作

Posted TianFang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB简单使用 —— 基本操作相关的知识,希望对你有一定的参考价值。

本身MongoDB直接支持的是Bson文档,Bson文档在C#的官方驱动中对应的是BsonDocument类:

var bsonDoc = new BsonDocument()
{
    ["_id"]  = "123",
    ["Name"] = "Jack",
    ["Age"]  = 32,
};

由于Bson和Json本身非常类似,所以它和Json一样,和.net对象之间互相转换是非常容易的。

public class Person
{
    public string Id   { getset; } = "123";
    public string Name { getset; }
    public int    Age  { getset; }
}

var person = BsonSerializer.Deserialize<Person>(bsonDoc);
var doc = person.ToBsonDocument();

MongoDB本身的增删改查都是直接针对Bson文档进行的:

var collection = database.GetCollection<BsonDocument>("foo");
collection.InsertOne(bsonDoc);

但为了使用方便,也可以使用强类型的集合。

var collection = database.GetCollection<Person>("foo");

var person = new Person()
{
    Id   = "365",
    Name = "Jack",
    Age  = 32,
};

//
插入
collection.InsertOne(person);
//
查询
collection.Find(i => i.Name == "Jack");
//
更新
collection.ReplaceOne(i => i.Id == "365", person);
//
删除
collection.DeleteOne(i => i.Id == "365");

由于支持Linq,用起来还是非常方便的。当然,也可以使用MongoDb本身的查询功能。

//查询
result = collection.Find(Builders<Person>.Filter.Eq(i=>i.Name"Jack")).ToList();

//
更新
collection.ReplaceOne(Builders<Person>.Filter.Eq(i => i.Id"365"), person);

//
更新部分字段
collection.UpdateOne(Builders<Person>.Filter.Eq(i => i.Id"365"),
    Builders<Person>.Update.Set(i => i.Age, 30));

//
删除
collection.DeleteOne(Builders<Person>.Filter.Eq(i => i.Id"365"));

甚至的,如果也可以使用MongDB的命令,也可以直接使用Mongo命令,更加简洁。

//查询
result = collection.Find("{ Name: ‘Jack‘ }").ToList();

//
更新
collection.UpdateOne("{Name: ‘Jack‘ }""{$set:{‘Age‘:‘37‘}}");

//
删除
collection.DeleteOne("{Name: ‘Jack‘ }");

这种方式类似Sql,非常简洁,但是失去了类型检查,至于如何使用,则需要看具体场合了。

 

参考文档:

 

以上是关于MongoDB简单使用 —— 基本操作的主要内容,如果未能解决你的问题,请参考以下文章

Apollo Codegen 没有找到生成代码的操作或片段

孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1

MongoDB PHP

java对mongodb数据库的简单操作

如何从片段外部清除/重置地图?

MongoDB简单使用 —— 基本操作