如果我将此对象插入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或磁盘)?如果数据存储在内存中,我该如何有效地索引大对象?如何查看索引内容?
答案 0 :(得分:0)
自动编入索引的唯一部分是_id
字段。需要手动索引任何其他索引。
就像MongoDB中的所有内容一样,索引处理为memory-mapped files。这意味着最近使用的索引缓存在RAM中,并且在操作系统自行决定暂时不被访问时,可以休眠到硬盘驱动器。
您可以使用Mongo shell命令your_collection
检查db.your_collection.stats()
上的索引以及索引的大小。如果您想知道每个索引为哪些字段编制索引,请使用db.your_collection.getIndexes()