我有一个集合{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>
答案 0 :(得分:0)
您是否一遍又一遍地插入相同的数据?显示BtreeCursor的事实是肯定的,但nscannedObjects的数量太大。您是否一遍又一遍地插入相同的数据?您是否有可能拥有447055&#34; gore&#34;值?如果是这样,那就是为什么花了这么长时间。