关于mongodb索引和主键的问题

发布于 2022-08-31 09:24:52 字数 345 浏览 13 评论 0

假设某个表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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

〆凄凉。 2022-09-07 09:24:52

可以在后面加上.explain()查看索引使用情况。
文档
说明:
1.cursor: 返回游标类型(BasicCursor 或 BtreeCursor)
2.nscanned: 被扫描的文档数量
3.n: 返回的文档数量
4.millis: 耗时(毫秒)
5.indexBounds: 所使用的索引

莫相离 2022-09-07 09:24:52

用的是复合索引b、c

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文