我提供了一个简单的例子来描述我在寻找的东西。
我收藏了一个城市中最老的人。 它目前看起来像这样:
{ "name" : "Arthur", "city" : "New York", "age" : 42}
{ "name" : "Arthur", "city" : "London", "age" : 42}
{ "name" : "Berta", "city" : "New York", "age" : 42}
我创建了以下索引:
db.people.createIndex( { name:1, city:1 }, { unique: true} )
我想根据以下条件执行upsert:
所以如果我用
执行upsert{ "name" : "Arthur", "city" : "New York", "age" : 43}
之后的集合看起来像那样:
{ "name" : "Arthur", "city" : "New York", "age" : 43}
{ "name" : "Arthur", "city" : "London", "age" : 42}
{ "name" : "Berta", "city" : "New York", "age" : 42}
可以请任何人向我展示mongo shell的upsert命令吗?
答案 0 :(得分:1)
您可以使用以下查询
执行此操作db.col.update(
{ "name" : "Arthur", "city" : "New York", age: {$lte: 43}},
{ "name" : "Arthur", "city" : "New York", "age":43},
{upsert: true})
请参阅{upset: true}
,此选项确保如果存在现有记录,则只需更新它,否则插入新文档。
您可以在MongoDB Website
获取更多信息