使用子嵌入文档更新复杂模式
Update a complex schema with sub embed document
我正在尝试使用 mongodb 更新子嵌入文档,但不起作用。
我想要一个 chapter.id & quest.id 给定,更新这个文件的百分比(只有这个)
我的架构如下:
{
"_id" : ObjectId("54ae5e63e71cef26050fca9a"),
"name" : "test",
"chapters" : [
{
"id" : 1,
"quests" : [
{
"id" : 1,
"name" : "quest1",
"percent" : 0
},
{
"id" : 2,
"name" : "quest2",
"percent" : 0
}
]
},
{
"id" : 2,
"quests" : [
{
"id" : 3,
"name" : "quest3",
"percent" : 0
},
{
"id" : 4,
"name" : "quest4",
"percent" : 0
}
]
}
]
}
我试过这个:
db.test.update({name:"test" , "chapters.quests.id":1 , "chapters.id":1} , {$set:{ "chapters.quests.$.percent":1} })
并且有这个错误
cannot use the part (chapters of chapters.quests.0.percent) to traverse the element ({chapters: [ { id: 1.0, quests: [ { id: 1.0, name: "quest1", percent: 0.0 }, { id: 2.0, name: "quest2", percent: 0.0 } ] }, { id: 2.0, quests: [ { id: 3.0, name: "quest3", percent: 0.0 }, { id: 4.0, name: "quest4", percent: 0.0 } ] } ]})
如果我用 0
如果有人可以帮助我,那可能是架构问题?
现在不可能不知道物体的位置。
我正在尝试使用 mongodb 更新子嵌入文档,但不起作用。
我想要一个 chapter.id & quest.id 给定,更新这个文件的百分比(只有这个)
我的架构如下:
{
"_id" : ObjectId("54ae5e63e71cef26050fca9a"),
"name" : "test",
"chapters" : [
{
"id" : 1,
"quests" : [
{
"id" : 1,
"name" : "quest1",
"percent" : 0
},
{
"id" : 2,
"name" : "quest2",
"percent" : 0
}
]
},
{
"id" : 2,
"quests" : [
{
"id" : 3,
"name" : "quest3",
"percent" : 0
},
{
"id" : 4,
"name" : "quest4",
"percent" : 0
}
]
}
]
}
我试过这个:
db.test.update({name:"test" , "chapters.quests.id":1 , "chapters.id":1} , {$set:{ "chapters.quests.$.percent":1} })
并且有这个错误
cannot use the part (chapters of chapters.quests.0.percent) to traverse the element ({chapters: [ { id: 1.0, quests: [ { id: 1.0, name: "quest1", percent: 0.0 }, { id: 2.0, name: "quest2", percent: 0.0 } ] }, { id: 2.0, quests: [ { id: 3.0, name: "quest3", percent: 0.0 }, { id: 4.0, name: "quest4", percent: 0.0 } ] } ]})
如果我用 0 如果有人可以帮助我,那可能是架构问题?
现在不可能不知道物体的位置。