我无法找出插入子数组......
我想将项目插入MyArray ......
我的更新文档应该如何?
MyCollection.Update(
new QueryDocument { { "_id", MyObject.Id } },
new UpdateDocument { { "$set", new BsonDocument { { "MyArray",
new BsonArray { new BsonDocument {{ "ArrayItemId", myArrayField.Id }},
new BsonDocument {{ "Name", myArrayField.Name }} }}}}},
UpdateFlags.None);
答案 0 :(得分:16)
新MongoDB c#异步适配器的语法:
var filter = Builders<myObject>
.Filter.Eq(e => e.Name, "name");
var update = Builders<myObject>.Update
.Push<String>(e => e.MyArray, myArrayField);
await collection.FindOneAndUpdateAsync(filter, update);
答案 1 :(得分:14)
使用$push
运算符完成数组插入。
作为旁注,您无需使用QueryDocument
和UpdateDocument
。有一个更简单的帮助语法:
MyCollection.Update(Query.EQ("_id", MyObject.Id),
Update.PushWrapped("MyArray", myArrayField)
请注意PushWrapped<T>
允许推送文档,而Push
只接受可以用MongoDB中的简单字段表示的类型。