zoukankan      html  css  js  c++  java
  • 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,非常简洁,但是失去了类型检查,至于如何选择,则需要看具体场合了。

     参考文档:

  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/TianFang/p/8836416.html
Copyright © 2011-2022 走看看