MongoDB CoffeeScript查找包含多个字段的文档

时间:2015-10-11 17:00:46

标签: mongodb coffeescript

如何查看是否有任何同时包含名称的文件:“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

2 个答案:

答案 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