我有一个像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" : [ ]
}
]
}
如何在子文档数组中插入新的子文档。任何帮助都是适当的
答案 0 :(得分:3)
要向阵列添加新成员,您可以像往常一样使用$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"
}
}
)
答案 1 :(得分:2)
我想你会对$push
感兴趣$ push运算符将指定值附加到数组。
$ addToSet运算符仅在数组中尚未包含值时才向数组添加值。如果值在数组中,$ addToSet不会修改数组。
您可以在上面的文档中找到示例。它会是这样的:
db.collection.update({
_id: ObjectId("5393006538efaae30ec2d458")
}, {
$push: {
groups: {
"groupName": "Family",
"groupMembers": []
}
}
});
答案 2 :(得分:0)
SampleModel:
{
"Name":String,
"brandid": {
type: Schema.ObjectId,
ref: 'BrandList.BrandItems',
}
}
BrandModel:
{
"BrandName" : String,
"BrandItems": [{
"KG": Number,
"_id" : {type: Schema.ObjectId}
}]
}
如何将子文档数组对象id引用到另一个模型..以及如何使用populate这个“brandid”..
请给我解决这个问题的解决方案......