在更新文档中的数组时,如何在MongoDB和C#中使用$ push update修饰符

Yas*_*uri 13 c# mongodb mongodb-.net-driver

我在mongo shell中运行以下代码:

db.unicorns.insert({name:  'Dunx',  loves:  ['grape',  'watermelon']});
Run Code Online (Sandbox Code Playgroud)

现在我在MongoDB集合中有这样的东西:

{name: 'Dunx', loves: ['grape', 'watermelon']}
Run Code Online (Sandbox Code Playgroud)

你可以看到loves一个数组.

如何使用官方C#驱动程序编写C#代码,执行以下操作:

db.unicorns.update({name: 'Aurora'}, {$push: {loves: 'sugar'}})
Run Code Online (Sandbox Code Playgroud)

上面的代码在mongo shell中运行得很好.

And*_*ich 16

它应该是这样的:

unicorns.Update(Query.EQ("name", "Aurora"), Update.Push("loves", "sugar"));
Run Code Online (Sandbox Code Playgroud)


Ale*_*sco 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);
Run Code Online (Sandbox Code Playgroud)