首页 > 解决方案 > 在 mongoDB 中过滤对象数组是否比获取整个数组更高效?

问题描述

我想知道什么时候值得减少从 mongoDB 请求的字段数量。

假设我有一组如下所示的项目:

{
  _id: 'someId',
  list: [{ title: 'a', id: '1' }, { title: 'b', id: '2' }]
}

现在如果我想查询这个集合并且只需要列表中的标题,我应该像这样查询它:

db.items.find({}, { "list.title": 1 });

或像这样:

db.items.find({}, { "list": 1 });

即是否值得过滤数组中的项目以获得我需要的子字段,还是需要额外的时间来过滤数组?

标签: mongodb

解决方案


当然,这是值得的。

根据MongoDB 优化查询性能文档

当您只需要文档中的一部分字段时,您可以通过仅返回您需要的字段来获得更好的性能。


推荐阅读