这是我的模型架构
{
"_id" : ObjectId("59999454bad567268f78dc09"),
"chapters" : [
{
"_id" : ObjectId("59999454bad567268f78dc0a"),
"individualChapters" : [
{
"_id" : ObjectId("59999454bad567268f78dc0b"),
"photos" : [
{
"_id" : ObjectId("59999454bad567268f78dc0c"),
image: ObjectId("599993e980c3ba2681639163")
},
{
"_id" : ObjectId("59999595bad567268f78dc12"),
image: ObjectId("599993e980c3ba2681639163")
}
]
},
{
"_id" : ObjectId("5999957dbad567268f78dc10"),
"photos" : [
{
"_id" : ObjectId("5999957dbad567268f78dc11"),
image: ObjectId("599993e980c3ba2681639163")
}
]
}
]
}
]
}
我正试图在"照片"中推送另一个元素第二个" individualChapters"使用下面的查询,但它总是推进"照片"第一个" individualChapters"。
Model.findAndModify(
{
'chapters.individualChapters._id' : ObjectId("5999957dbad567268f78dc10"),
'chapters._id' : ObjectId("59999454bad567268f78dc0a"),
_id: ObjectId("59999454bad567268f78dc09")
},
{
'$push': {
'chapters.0.individualChapters.$.photos': {
image: ObjectId("599993e980c3ba2681639163")
}
}
}, { new: false, upsert: false })
它总是更新第一个个人掌。请帮忙!!
答案 0 :(得分:0)
你指的是错误的元素。 $push
应该有这个
chapters.0.individualChapters.1.photos.0._id
喜欢这个
答案 1 :(得分:0)
以下是您的具体情况。
Model.findAndModify(
{
'chapters.individualChapters._id' : ObjectId("5999957dbad567268f78dc10"),
'chapters._id' : ObjectId("59999454bad567268f78dc0a"),
'_id': ObjectId("59999454bad567268f78dc09")
},
{
'$push': {
'chapters.0.individualChapters.1.photos': {
'image': ObjectId("599993e980c3ba2681639163")
}
}
}, { new: false, upsert: false })