Javascript Upsert未更新现有文档
如果新文档不存在,Mongo将创建一个新文档(必须具有Javascript Upsert未更新现有文档,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,如果新文档不存在,Mongo将创建一个新文档(必须具有id1)。如果它已经存在,它应该将所有值增加1。但这里的问题是,它每次都会添加另一个文档,而不是更新已经存在的文档 const query = { id: 1, customer: { worth: 0 } }, update = { id: 1, $inc: { 'customer.worth': 1
id
1)。如果它已经存在,它应该将所有值增加1。但这里的问题是,它每次都会添加另一个文档,而不是更新已经存在的文档
const query = {
id: 1,
customer: {
worth: 0
}
},
update = { id: 1, $inc:
{
'customer.worth': 1
}
},
options = { upsert: true };
Model.findOneAndUpdate(query, update, options)
.catch(err => console.log(err));
如果文档已经存在,我如何增加值1,而不是每次添加另一个文档?在任何给定的时间我只想要一个文档。您的查询似乎正常,并且在更新期间由于
向上插入
标志而插入
可选。如果设置为true,则在没有文档时创建新文档
匹配查询条件。默认值为false,这不正确
未找到匹配项时插入新文档
以下查询对我有效
db.getCollection('test').findOneAndUpdate({
"id" : 1,
"customer" : {
"worth" : 0
}
}, {
$inc: {
'customer.worth': 1
}
})
您的查询似乎正常,并在更新期间由
upsert
标志导致插入
可选。如果设置为true,则在没有文档时创建新文档
匹配查询条件。默认值为false,这不正确
未找到匹配项时插入新文档
以下查询对我有效
db.getCollection('test').findOneAndUpdate({
"id" : 1,
"customer" : {
"worth" : 0
}
}, {
$inc: {
'customer.worth': 1
}
})