$ exists是否存在:false使用索引?

时间:2013-03-27 10:11:31

标签: mongodb indexing

我们有以下用例:由于协议原因,我们不会从数据库中删除已删除或更新的记录。我们$set他们的deleted字段到更新/删除日期/时间并创建新记录(如果更新)。所以所有“当前”记录都没有deleted字段“。当前记录的所有索引都是这样的:

{ 
    field_a: 1, 
    field_b: 1, 
    ..., 
    deleted: 1 
} 

有关当前记录的查询如下所示:

find( {
    field_a: "...", 
    field_b: "...", 
    deleted: { $exists: false}
} )

由于我不确定{$exists: false}是否使用了索引,因此我已将current字段设置为true到所有当前字段(没有deleted的字段)和我将索引更改为:

{ 
    field_a: 1, 
    field_b: 1, 
    ..., 
    current: 1 
} 

和我的查询:

find( {
    field_a: "...", 
    field_b: "...", 
    current: true
} )

有谁能告诉我后一种情况是否真的更好?或者他们是否有不同的表现,我可以省去额外的current字段?

感谢任何提示。

0 个答案:

没有答案