在更新文档中的数组时,如何在MongoDB和C#中使用$ push update修饰符
我在mongo shell中运行以下代码:
db.unicorns.insert({name: 'Dunx', loves: ['grape', 'watermelon']});
现在我在MongoDB集合中有类似的东西:
{name: 'Dunx', loves: ['grape', 'watermelon']}
正如你所看到的, loves
是一个arrays。
题
如何使用官方C#驱动程序编写C#代码,执行以下操作:
db.unicorns.update({name: 'Aurora'}, {$push: {loves: 'sugar'}})
上面的代码在mongo shell中运行得很好。
它应该是这样的:
unicorns.Update(Query.EQ("name", "Aurora"), Update.Push("loves", "sugar"));
我还想说明如何使用不同的语法来完成它
var filter = Builders .Filter.Eq(e => e.Name, "Aurora"); var update = Builders .Update .Push(e => e.Likes, like); await fantasyContext.Unicorns.FindOneAndUpdateAsync(filter, update);
要使用更新的语法和常规BsonDocument
而不是已定义的对象执行此操作,请使用以下命令:
var filter = Builders.Filter.Eq("name": "Aurora"); var update = Builders .Update.Push("loves", "sugar"): // you can also use the async update method from Alex's answer here var result = fantasyContext.Unicorns.UpdateOne(filter, update);
- 等待TaskEx.Delay
- 从ASP.NET中的GridView中的RadioButtonList中的选定项中获取文本
- 在C#中将asapx webservice中的Soap Request Header从text / xml更改为soap / xml
- 使用x-www-form-urlencoded发布数据的ASP.Net Web API自定义模型绑定 – 似乎没什么用
- WMI硬件,获取RAM信息
- 在将所有导航属性加载(懒惰或渴望)到内存之前对其进行过滤
- php转C#转换器
- 如何在Intellitrace事件中跟踪异步数据库操作?
- 在ILMerge之后,BinaryFormatter.Deserialize“无法找到程序集”