我想通过点击按钮一次只激活一个文档。为此我使用了一个标志:“active”。
'click .active': function (){
var status = nodeDB.findOne({active:true});
nodeDB.update( {$set:{'active':true}});
//How to set the other documents as inactive
},
MongoDB中的元素
Document1: {Keys->value,active->true}
Document2: {Keys ->value,active->false}
答案 0 :(得分:0)
您必须以某种方式使用文档_id
:
'click .active': function (){
var id = this._id;
nodeDB.update({_id: id}, {$set: {active:true}});
nodeDB.update({_id: {$ne: id}}, {$set:{'active':false}}, {multi:true});
},
答案 1 :(得分:0)
首先,您需要获取要激活的文档的ID。我不知道该项目以及它会是什么语法但它应该是这样的:
'click .active': function (documentId){
//Ensure you update only this document
var status = nodeDB.findAndModify({
query: {active: true, _id: documentId},
update: {active: true},
upsert: false,
new: true
});
//Update all docs other than the one you have
nodeDB.update(
{ query: {id: {$ne: status._id}} },
{ upsert: false },
{ update: {active: false} }
);
},