數組存儲是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/