我正在尝试根据条件进行推送或拉动,以及一个upsert
myCollection.update(
{'id': location},
{
$set: { count },
$setOnInsert: {
id: location,
users: []
},
},
{
$cond: {
if: (increment==1),
then: {$push: { users: userToken }},
else: {$pull: { users: userToken }}
}
},
{'upsert':true},
(err, data) => {
...
我正试图干这个(有效):
mongo.connect(dbUrl, (err, db) => {
if (err) throw err
let myCollection = db.collection('myCollection')
if(increment==1){
myCollection.update(
{'id': location},
{
$set: { count },
$push: { users: userToken },
$setOnInsert: {
id: location
}
},
{'upsert':true},
(err, data) => {
if (err) throw err
console.log(data);
callback()
db.close()
}
)
}
else{
myCollection.update(
...
$pull: { users: userToken },
...
)
}
})
当我有$ cond时,它不会向DB添加任何内容。 $ cond应该在哪里?
答案 0 :(得分:0)
$cond
不适用于汇总框架。您需要的是一个纯旧的本机JS条件语句,您可以在更新操作中使用它之前创建更新文档,当然这应该在条件块中设置。请考虑以下示例:
@PersistenceConstructor