为什么嵌套的MongoDB模式要比平面模式慢?

时间:2018-12-14 14:52:29

标签: mongodb

最初我有下一个平面模式:

{
    _id:
    name:
    surname:
    courseID:
    courseName:
}

稍后,我在MongoDB中使用了group聚合并生成了这个新的嵌套模式:

{
    _id: {
        _id:,
        student: {
            name:
            surname:
        },
        course: {
            id:
            name:
        }
    }
}

但是,当我运行查询时,它在0.7sec中的平面模式上运行,但是在嵌套的查询中它需要1.02sec。 所以问题是,我做错了什么?因为我已经读到嵌套模式的性能应该比扁平化的更好。 我的收藏夹中有100万条记录

为了生成嵌套模式,我使用了:

db.nested.save(
db.flat.aggregate([
{
    $group: {
        _id: {
            student: {
                name: "$studentname",
                surname: "$studentsurname"
            },
            course: {
                id: "$courseid",
                name: "$coursename"
            }
        }
    }
}
], { allowDiskUse: true }).toArray()
)

也许有一些选项可以改善我的查询以生成新的嵌套集合?

0 个答案:

没有答案