[英]How to add a sub document to sub document array in MongoDB
我在mogodb中有一個這樣的集合:
{
"_id" : ObjectId("5393006538efaae30ec2d458"),
"userName" : "shiva",
"userUnderApiKey" : 123456,
"groups" : [
{
"groupName" : "Default",
"groupMembers" : [ ]
}
]
}
我想在groups數組中添加一個新組作為子文檔,如下所示
{
"_id" : ObjectId("5393006538efaae30ec2d458"),
"userName" : "shiva",
"userUnderApiKey" : 123456,
"groups" : [
{
"groupName" : "Default",
"groupMembers" : [ ]
},
{
"groupName" : "Family",
"groupMembers" : [ ]
}
]
}
如何在子文檔數組中插入新的子文檔。將提供任何幫助
要向數組添加新成員,只需像通常那樣使用$push
:
db.collection.update(
{ "_id": ObjectId("5393006538efaae30ec2d458") },
{
"$push": {
"groups": {
"groupName" : "Family",
"groupMembers" : [ ]
}
}
}
)
然后,如果要將成員添加到該成員包含的數組中,則需要匹配要添加到的元素:
db.collection.update(
{
"_id": ObjectId("5393006538efaae30ec2d458"),
"groups.groupName" : "Family",
},
{
"$push": {
"groups.$.groupMembers" : "bill"
}
}
)
我想您會對$ push感興趣
$ push運算符將指定的值附加到數組。
僅當值尚未在數組中時,$ addToSet運算符才會將值添加到數組中。 如果該值在數組中,則$ addToSet不會修改該數組。
您可以在上面的文檔中找到示例。 就像這樣:
db.collection.update({
_id: ObjectId("5393006538efaae30ec2d458")
}, {
$push: {
groups: {
"groupName": "Family",
"groupMembers": []
}
}
});
SampleModel:
{
"Name":String,
"brandid": {
type: Schema.ObjectId,
ref: 'BrandList.BrandItems',
}
}
BrandModel:
{
"BrandName" : String,
"BrandItems": [{
"KG": Number,
"_id" : {type: Schema.ObjectId}
}]
}
如何將子文檔數組對象ID引用到另一個模型,以及如何將填充用於此“ brandid”。
請給我一些slutatin來解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.