Ser*_*dar 14 c# mongodb mongodb-.net-driver
我无法找出插入子数组...
我想将项目插入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);
Run Code Online (Sandbox Code Playgroud)
Ofi*_*fir 17
新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);
Run Code Online (Sandbox Code Playgroud)
mne*_*syn 14
使用$push运算符完成数组插入.
作为旁注,您不需要使用QueryDocument和UpdateDocument.有一个更简单的帮助语法:
MyCollection.Update(Query.EQ("_id", MyObject.Id),
Update.PushWrapped("MyArray", myArrayField)
Run Code Online (Sandbox Code Playgroud)
请注意,PushWrapped<T>允许推送文档,同时Push只接受可以由MongoDB中的简单字段表示的类型.