显示mongodb索引内容

Display mongodb index contents

本文关键字:索引 mongodb 显示      更新时间:2023-10-16

构建索引后,我想查看索引的内容。以MonboDB文档为例:

{ "_id" : ObjectId("..."),
"name" : "Warm Weather",
"author" : "Steve",
"tags" : [ "weather", "hot", "record", "april" ] }

然后标签字段上的索引将具有以下值:

{ tags: "weather" }
{ tags: "hot" }
{ tags: "record" }
{ tags: "april" }

所以,我想运行一个命令,比如db.weather._tags_.find()来显示所述值。

问题:是否存在这样的shell命令?或者有没有一种方法可以在C++驱动程序中做到这一点?

@user1883451

您给出的例子是散列索引,mongodb在内部存储B-Tree索引。

所以您给出的例子并不总是正确的,mongodb在某些情况下最终会以这种方式存储,但并不总是如此。

  1. shell是客户端,它不显示"内部如何存储索引">
  2. 驱动程序主要是和服务器交互(过于简单化),它也不知道东西是如何存储的

A)如何查看mongodb索引

最好的开始是采取mongo源代码并开始玩它

https://github.com/mongodb/mongo/tree/master/src/mongo/db/带有索引的文件*https://github.com/mongodb/mongo/tree/master/src/mongo/db/带有btree*的文件

B) 我想你这么做只是为了学习。如果您有任何特定的查询,为什么要这样做,请抛出查询。

PS:1.关于内部和源代码的代码更多,文档更少。2.你可以加入http://groups.google.com/group/mongodb-dev

@ranman是的,我用的。我想窥探一下索引本身,看看为什么没有使用查询。我喜欢掌握这些比特、字节和字符,以增加我对引擎盖下发生的事情的理解user1883451 1小时前

在这种情况下,您应该查看查询优化器和相关内部。