关于mongodb索引和主键的问题
假设某个表my_table是这样的:
{_id: ObjectId('...'), a:'xxoo', b:0, c:'apple'}
...
有一个普通索引:db.my_table.ensureIndex({b:1, c:1})
现在有一个查询是这样的:
db.my_table.find({
'b':199,
'c':'fackbook',
'_id':{
$gt:new ObjectId('...')
}
}).limit(20)
那么问题来了:这个查询用的是哪个索引?是主键,还是上面那个普通索引?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以在后面加上
.explain()
查看索引使用情况。文档
说明:
1.cursor: 返回游标类型(BasicCursor 或 BtreeCursor)
2.nscanned: 被扫描的文档数量
3.n: 返回的文档数量
4.millis: 耗时(毫秒)
5.indexBounds: 所使用的索引
用的是复合索引b、c