我想一次仅通过单击按钮激活一个文档。为此,我使用一个标志:" 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}
您必须以某种方式使用该文档的_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});
},
第一件事是您需要获取要激活的文档的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} }
);
},