2
我需要設置一個嵌套數組的一個對象,其屬性爲「default = true」,但我只需要一個具有此屬性的人,其他人不能擁有此屬性。用貓鼬更新
例子:
{
"_id": "xxxxx",
"name": "Jmae",
"desktops": [
{
"_id": "xxxxx",
"name": "Mike",
"default": true
},
{
"_id": "xxxxx",
"name": "Aris"
},
{
"_id": "xxxxx",
"name": "John"
}
]
}
這隻集,但不刪除:
var filter = {
"_id": platformId,
"desktops._id": desktopId
},
updateParams = {
"$set": {
"desktops.$.default": true
}
};
crud.findOneAndUpdate(filter, updateParams, null, callback);
接下來的這個代碼工作正常,但其巨大的:
crud.findByIdNeed(platformId, null, null, function (err, platform) {
// En caso de error
if (err) {
callback(err);
return;
}
_.each(platform.desktops, function (desk, i) {
if(desk._id.toString() === desktopId){
platform.desktops[i].default = true;
}else if(platform.desktops[i].default){
delete platform.desktops[i].default;
}
});
platform.save(callback);
});
我怎麼能做出這種更好?
好!謝謝^^ – user1710825