如何查看是否有任何同时包含名称的文件:“John”和年龄:40?
这似乎不起作用
db.Event.findOne name: "John", age: 40, (error, result) ->
unless result
db.Event.save {name: "John", age: 40}
# document not found, so add it
inserted = true
else
# document found
inserted = false
答案 0 :(得分:1)
管理inserted
布尔值的回调:
data =
'name': 'John'
'age': 40
inserted = false
db.Event.update data,
{ '$setOnInsert': data },
'upsert': true,
(error, result) ->
inserted = not error
答案 1 :(得分:0)
听起来你需要 $setOnInsert
更新运算符,它与原子 {{3}中的更新标志 { "upsert": true }
一起使用时操作,操作会插入一个新文档, update()
会将指定的值分配给文档中的字段。如果更新操作未导致插入, $setOnInsert
不执行任何操作:
<强>的JavaScript 强>:
var data = {
"name": "John",
"age": 40
}
db.Event.update(
data,
{ "$setOnInsert": data },
{ "upsert": true }
)
<强>的CoffeeScript 强>:
data =
'name': 'John'
'age': 40
db.Event.update data, { '$setOnInsert': data }, 'upsert': true