![](/img/trans.png)
[英]How to Update an Object inside an Array inside a MongoDB Collection using Mongoose
[英]How to update object inside array inside object in Mongoose?
我是MongoDB的新手,並且有一個組織的MongoDB集合。 並且有一系列的classes (object)
。 我目前正在將Node.js與Mongoose結合使用,以更新班級內的教師count
。 當前收藏如下。
//organization
{
"_id" : ObjectId("54db07ab12545794bf7c2d1b"),
"name" : “Stackoverflow”,
"classes" : [
{
"name" : “Stack 01”,
"_id" : ObjectId("54db07ab12545794bf7c2d1f"),
"teachers" : [
{
"idUser" : "54d1e8fe14a880bea6288eb6",
"locked" : false,
"count" : 0,
},
{
"idUser" : "54d321cb190c919759b8a8bb",
"locked" : false,
"count" : 0,
},
{
"idUser" : "54d32147ceaa3a665958b096",
"locked" : true,
"count" : 0,
}
]
},
{
"name" : “Stack 02“,
"_id" : ObjectId("54db07ab12545794bf7c2d1c"),
"teachers" : [
{
"idUser" : "54d1e8fe14a880bea6288eb6",
"locked" : false,
"count" : 0,
},
{
"idUser" : "54d32147ceaa3a665958b096",
"locked" : true,
"count" : 0,
}
]
}
]
}
每當我通過貓鼬更新組織時,我都希望增加教師人數。 我這樣寫。
Organization.findOneAndUpdate(
{_id: "54db07ab12545794bf7c2d1b",
"classes._id": "54db07ab12545794bf7c2d1f"},
{
$inc: {"classes.$.teacher.$.count": 1}
},function(err, org){});
請幫助我查詢和增加教師人數。
您可以手動檢索它並在javascript級別進行操作,然后將其保存到模型中。
var query = {_id: "54db07ab12545794bf7c2d1b"}
Organization.findOne(query,function(err, org){
var classes = org.classes;
var index = null;
for (var i in classes) {
if (class[i]._id === ObjectID("54db07ab12545794bf7c2d1f")) {
var index = i;
break;
}
}
var teachers = org.classes[index].teachers;
for (i in teachers) {
if (teachers[i].idUser === '54d1e8fe14a880bea6288eb6' ) {
teachers[i].count++;
}
}
org.classes[index].teachers = teachers;
org.save();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.