我在mongo shell中运行了以下代码:
db.unicorns.insert({name: 'Dunx', loves: ['grape', 'watermelon']});
现在我在MongoDB集合中有类似的东西:
{name: 'Dunx', loves: ['grape', 'watermelon']}
如您所见,loves
是一个数组。
问题
如何使用官方C#驱动程序编写C#代码,执行以下操作:
db.unicorns.update({name: 'Aurora'}, {$push: {loves: 'sugar'}})
上面的代码在mongo shell中运行得很好。
答案 0 :(得分:16)
它应该是这样的:
unicorns.Update(Query.EQ("name", "Aurora"), Update.Push("loves", "sugar"));
答案 1 :(得分:9)
我还想说明如何使用不同的语法
来做到这一点var filter = Builders<Unicorn>
.Filter.Eq(e => e.Name, "Aurora");
var update = Builders<Unicorn>.Update
.Push<String>(e => e.Likes, like);
await fantasyContext.Unicorns.FindOneAndUpdateAsync(filter, update);
答案 2 :(得分:0)
要使用更新的语法和常规BsonDocument
而不是已定义的对象执行此操作,请使用以下命令:
var filter = Builders<BsonDocument>.Filter.Eq("name": "Aurora");
var update = Builders<BsonDocument>.Update.Push("loves", "sugar"):
// you can also use the async update method from Alex's answer here
var result = fantasyContext.Unicorns.UpdateOne(filter, update);