2016-09-16 70 views
0

我是ExpressJS的新mongodb和猫鼬。这可能是一个简单的问题,但我没有成功。猫鼬获取收集数据,如果存在更新,否则插入

var BookCounter = new Schema({ 
    counter: {type: Number,}, 
    book: {type: String, min: 18} 
}); 

这是我的架构和下面是我的问题:

我想检查某某书存在或不存在

如果书中出现

然后我必须更新一个书柜台。

否则

我必须插入新的书。

能否请你帮我..提前:)

回答

1

感谢您需要的更新操作findOneAndUpdate()使用该选项upsert来创建文档,如果不存在,它和new如果设置为true,则选项返回新创建/修改的文档,而不是原始文件,旁边还有$set$inc现场更新操作员。

下面的例子说明了这一点:

var query = { "book": "xyz" }, 
    update = { "$inc": { "counter": 1 } }, 
    options = { "upsert": true, "new": true }; 

// Find the document 
Book.findOneAndUpdate(query, update, options, function(err, result) { 
    if (err) handleError(err);  
    else { 
     // do something with the document 
     console.log(JSON.stringify(result, null, 4)); 
    } 
}); 
+1

由于它的工作原理:) – VRK

相关问题