为什么嵌套MongoDB模式比平面模式慢?
最初,我有下一个平面模式:为什么嵌套MongoDB模式比平面模式慢?,mongodb,nosql,Mongodb,Nosql,最初,我有下一个平面模式: { _id: name: surname: courseID: courseName: } 后来,我在MongoDB中使用了groupaggregate并生成了这个新的嵌套模式: { _id: { _id:, student: { name: surname: }, course: {
{
_id:
name:
surname:
courseID:
courseName:
}
后来,我在MongoDB中使用了group
aggregate并生成了这个新的嵌套模式:
{
_id: {
_id:,
student: {
name:
surname:
},
course: {
id:
name:
}
}
}
但当我运行一个查询时,它在平面模式上运行,运行时间为0.7秒
,但在嵌套模式下运行时间为1.02秒
。
所以问题是,我做错了什么?因为我已经读到嵌套模式的性能应该比扁平模式更好。
我收藏了一百万张唱片
用于生成我使用的嵌套架构:
db.nested.save(
db.flat.aggregate([
{
$group: {
_id: {
student: {
name: "$studentname",
surname: "$studentsurname"
},
course: {
id: "$courseid",
name: "$coursename"
}
}
}
}
], { allowDiskUse: true }).toArray()
)
也许有一些选项可以帮助我改进查询以生成新的嵌套集合