如何解决MongoDB文档中的字段排序是否会影响聚合查询性能?
默认情况下,MongoDB返回字段的插入顺序。
在MySQL中,通常我们保持:
- 主键列优先
- 接下来是外键列。
- 接下来经常搜索的列
类似在MongoDB中,我是否需要担心文档的字段顺序。我知道复合索引中列出的字段的顺序很重要。除此之外,文档中的字段顺序是否会影响查询性能?
这是我尝试过的:
我用一个包含1k个文档的样本数据对其进行了测试,格式如下:
{
"key": "A","status": "To Do","val": 4
},{
"key": "B","status": "Done","val": 1
}
将status
字段移到顶部,因为它是在$ match阶段使用的,
{
"status": "To Do","key": "A",{
"status": "Done","key": "B","val": 1
}
执行具有$ match,$ group和$ project阶段的聚集查询。
db.collection.explain("executionStats").aggregate([
{
$match: {
status: "Done"
}
},{
$group:
...
},{
$project:
...
}
但是我看不出任何明显的区别。那么,有什么理由要关心字段在文档中的顺序吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。