Mongodb查询执行缓慢

Mongodb查询执行缓慢,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一个蒙多布收藏 它包含大约1行和2000行,每个daily\u details数组包含大约50个条目。我正在查询给定的daily\u details.date范围的所有详细信息,但运行速度非常慢。我也尝试创建索引,但没有成功 db.db_col_his_details.ensureIndex( { "daily_details.date": 1 } ) 查询: db.db_col_his_details.find({ "daily_details.date": ISODate(

我有一个蒙多布收藏

它包含大约1行和2000行,每个
daily\u details
数组包含大约50个条目。我正在查询给定的
daily\u details.date
范围的所有详细信息,但运行速度非常慢。我也尝试创建索引,但没有成功

db.db_col_his_details.ensureIndex( { "daily_details.date": 1 } )
查询

db.db_col_his_details.find({
     "daily_details.date": ISODate("2014-12-31 18:30:00.000Z")
}).explain()
我正在使用JavaMorphiaAPI进行查询

解释输出:

{
  "cursor": "BtreeCursor daily_details.date_1",
  "isMultiKey": true,
  "n": 1479,
  "nscannedObjects": 1479,
  "nscanned": 1479,
  "nscannedObjectsAllPlans": 1479,
  "nscannedAllPlans": 1479,
  "scanAndOrder": false,
  "indexOnly": false,
  "nYields": 0,
  "nChunkSkips": 0,
  "millis": 11,
  "indexBounds": {
    "daily_details.date": [
      [
        ISODate("2014-12-31T18:30:00.000Z"),
        ISODate("2014-12-31T18:30:00.000Z")
      ]
    ]
  },

}

谢谢您的帮助。

您能从mongo shell执行查询并添加explain()以查看mongo查询计划吗。这将有助于显示索引是否已被使用或未被检查。索引正在查询中使用。能否提供解释查询的输出以及实际查询?查询的速度有多慢-查询的预期执行时间是多少?mongo DB运行在什么体系结构上?与性能相关的问题总是与什么是快/慢以及什么是可接受的有关…@SagarVimal如果您能够包括您尝试过的所有细节,包括
explain()
方法中的查询和统计信息,以准确显示根据explain输出Etca所花费的毫秒数,这将非常有帮助,执行查询只需11毫秒,速度相当快。