如果我创建以下复合索引:
{'username': 1, 'uid': 1}
可以利用该索引中使用,如果我只跟搜索uid一样
db.users.find({'uid': '12345'})?
因为生成两个单独的单个索引似乎会占用更多内存。
只要您通过作为索引字段左子集的字段进行查询,MongoDB就会自动使用索引。也就是说,如果您有一个类似{a:1,b:1,c:1}的索引,则所有3个查询db.coll.find({a:“ xxx”}),db.coll.find({a :“ xxx”,b:“ yyy”})和db.coll.find({a:“ xxx”,b:“ yyy”,c:“ zzz”})假定没有索引其他索引。