Mongodb的數組操作

數組存儲是Mongodb的一個非常便利的地方,可以不用存儲上下文關聯關係,直接級聯刪除。本文這裏簡單的介紹下數組的用法:

數據:

var record = new
{
    Id = "t1",
    Name = "tt1",
    SubTypes = new object[]
    {
        new {Id = "s1", Value = "11"},
        new {Id = "s2", Value = "l22"},
    }
};
 
table.InsertOne(record.ToBsonDocument());

插入:

var filter = new {Id = "t1"}.ToBsonDocument();
                                                        
var push = Builders<BsonDocument>.Update.Push("SubTypes", new { Id = "s3", Value = "333" });
table.UpdateOne(filter, push);

刪除:

var pull = Builders<BsonDocument>.Update.Pull("SubTypes", new { Id = "s2" });
table.UpdateOne(filter, pull);

更新:

更新則要複雜些:

var filter = new BsonDocument()
{
    ["_id"]          = "t1",
    ["SubTypes._id"] = "s1"
};

var set = Builders<BsonDocument>.Update.Set("SubTypes.$.Value", "v3");
table.UpdateOne(filter, set);

 

參考文檔:

https://docs.mongodb.com/manual/reference/operator/update-array/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章