什么是将数据推送到数组中的最佳方式,该数组在数组中嵌套了几个级别......
这是一个示例文档(组成)代表文档中的数据,除了真实文档有更多的学校有更多的课程和更多的学生。每件事'有一个唯一的ID: -
{
_id: 4353467865,
school : [
{
_id: 3425353,
name: 'school of rock',
class: [
{
_id: 3242342
name: 'Room1',
students: [
{ _id: 345456562, name: 'Kevin' }
]
},
{
// more classes with more students nested underneath
}
]
},
{
// more schools, classes, students...
}
]
}
现在我知道了文档,学校和班级的ID,现在我想对该班级的学生数组{_id: 234554363, name: 'Barry'}
进行更新$推送。
如何构建更新查询?
答案 0 :(得分:0)
答案 1 :(得分:0)
我回答了自己的问题,因为我现在已经使用了Mongo一段时间。
第一个答案......
在设计Mongo的东西时,我是超级偏执的,如果我可以尝试在一个文档中获取东西,因为这是整个好处。现实是你不必过于偏执。学校和班级可以是单独的收藏。它确实取决于你如何使用它们,但最重要的是,这些天我会做单独的收集。
第二个答案......
我需要做嵌套数组,但是任何级别的嵌套数组都可以分离成非嵌套数组,其中包含使用mongo进行更新的简单
所以
school : [
{
_id: 3425353,
name: 'school of rock',
}
],
classes: [
{
_id: 3242342
school_id: 3425353,
name: 'Room1',
}
],
students: [
{ _id: 345456562, class_id: 3242342, name: 'Kevin' }
{ _id: 345456563, class_id: 3242342, name: 'Gilbert' }
]