当前位置: 首页 > 知识库问答 >
问题:

MongoDB查找与聚合性能

卓胜
2023-03-14
var start = (new Date).getTime();
db.assets.find({
  "catalog_id":"f1a7669654584a42958d9589cf37d173",
  "albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
});
var end = (new Date).getTime();
print("elapsed " + (end - start) +" msec");
var start = (new Date).getTime();
db.assets.aggregate([
  {
    "$match":{
      "catalog_id":"f1a7669654584a42958d9589cf37d173",
      "albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
    }
  }
]);
var end = (new Date).getTime();
print("elapsed " + (end - start) +" msec");

但在我看来不对。有人能建议别的方法做这件事吗。

共有1个答案

蒋寒
2023-03-14

db.collection.explain() 操作可以返回以下信息:

  • QueryPlanner,详细说明查询优化器选择的计划,并列出被拒绝的计划;
  • executionstats,详细说明获胜计划和被否决计划的执行情况;和
  • ServerInfo,它提供关于MongoDB实例的信息。

在find()中如何解释?

db.assets.explain("executionStats").find({
  "catalog_id":"f1a7669654584a42958d9589cf37d173",
  "albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
});
db.assets.explain("executionStats").aggregate([
  {
    "$match":{
      "catalog_id":"f1a7669654584a42958d9589cf37d173",
      "albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
    }
  }
]);
 类似资料:
  • 我有两个收藏品 员额:

  • 我有包含以下模式的文档的集合。我想过滤/查找所有包含性别女性的文档并汇总大脑评分的总和。我尝试了下面的语句,它显示了无效的管道错误。 架构:

  • 我使用Nodejs和MongoDB与expressjs和mongoose库,创建一个具有用户、文章和评论模式的博客API。下面是我使用的模式。

  • 问题内容: 我试图实现使用中去(golang)我的MongoDB查询的一个功能氧化镁包。 以下是我的收藏: 资料夹: 文件: 以下是我编写的在外壳程序上成功运行的查询: 如果我在外壳上运行此脚本,则会得到所需的结果。基本上,集合会返回给我,其中包含通过链接的全部相关内容。我不在这里包括它,因为这个问题似乎已经太久了。 我试图将此查询转换为 mgo 能够解析和执行的内容。在下面的go代码中: 我总是

  • 主要内容:aggregate() 方法,管道MongoDB 中的聚合操作用来处理数据并返回计算结果,聚合操作可以将多个文档中的值组合在一起,并可对数据执行各种操作,以返回单个结果,有点类似于 SQL 语句中的 count(*)、group by 等。 aggregate() 方法 您可以使用 MongoDB 中的 aggregate() 方法来执行聚合操作,其语法格式如下: db.collection_name.aggregate(aggr

  • 我使用Spring(引导)2.2.7与mongoDB 4.0运行在Debian Stretch(9.12)。我已经设置了3个集合,我试图通过聚合查找级联操作加入这些集合。 操作(节点类) 股票(组件类) 目录(产品类) 每个类都有一个将它们链接在一起的uuid字符串属性。 节点(传感器、接收器、基站等) 组件(带有序列号、条形码的交付产品…) 产品(市场人工制品) 在mongo shell中运行此