如何索引MongoDB中的大对象? (索引中存储了什么?我可以看到索引的内容吗?)

时间:2014-12-31 10:35:17

标签: mongodb indexing

如果我将此对象插入Mongo:

var object = {
  key1 : "some big string",
  key2 : "Another big inner object"
};

自动添加_id

var object = {
   _id : objectId('some id');
   key1 : "some big string",
   key2 : "Another big inner object"
};

在这条新记录中,它的哪些部分被索引(自动或手动)以及该索引存储在哪里(RAM或磁盘)?如果数据存储在内存中,我该如何有效地索引大对象?如何查看索引内容?

1 个答案:

答案 0 :(得分:0)

自动编入索引的唯一部分是_id字段。需要手动索引任何其他索引。

就像MongoDB中的所有内容一样,索引处理为memory-mapped files。这意味着最近使用的索引缓存在RAM中,并且在操作系统自行决定暂时不被访问时,可以休眠到硬盘驱动器。

您可以使用Mongo shell命令your_collection检查db.your_collection.stats()上的索引以及索引的大小。如果您想知道每个索引为哪些字段编制索引,请使用db.your_collection.getIndexes()