MongoDB索引结果在数组字段上

时间:2014-07-28 05:44:17

标签: mongodb indexing database-performance

我有一个集合{student_id:1,老师:[“....”,...]}

按顺序完成的步骤:1)通过{teachers:“gore”}找到

2)将索引设置为{student_id:1}

3)找到{老师:“gore”}

4)将索引设置为{teachers:1}

5)找到{老师:“gore”}

并且结果(所花费的时间)通过索引教师(数组)没那么有效请有人解释发生了什么?我可能在这里做错了,请纠正我。结果如下:

d.find({teachers:“gore”})。explain()

{“cursor”:“BasicCursor”,“nscanned”:999999,“nscannedObjects”:999999,“n”:447055,“millis”:1623,“nYields”:0,“nChunkSkips”:0,“isMultiKey “:false,”indexOnly“:false,”indexBounds“:{ }}

d.ensureIndex({student_id:1})

d.find({teachers:“gore”})。explain(){“cursor”:“BasicCursor”,“nscanned”:999999,“nscannedObjects”:999999,“n”:447055,“millis”: 1300,“nYields”:0,“nChunkSkips”:0,“isMultiKey”:false,“indexOnly”:false,“indexBounds”:{ }}

d.ensureIndex({teachers:1})

d.find({teachers:“gore”})。explain(){“cursor”:“BtreeCursor teachers_1”,“nscanned”:447055,“nscannedObjects”:447055,“n”:447055,“millis” :1501,“nYields”:0,“nChunkSkips”:0,“isMultiKey”:true,“indexOnly”:false,“indexBounds”:{“teachers”:[[“gore”,“gore”]]}} < / p>

1 个答案:

答案 0 :(得分:0)

您是否一遍又一遍地插入相同的数据?显示BtreeCursor的事实是肯定的,但nscannedObjects的数量太大。您是否一遍又一遍地插入相同的数据?您是否有可能拥有447055&#34; gore&#34;值?如果是这样,那就是为什么花了这么长时间。