我们有以下用例:由于协议原因,我们不会从数据库中删除已删除或更新的记录。我们$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
字段?
感谢任何提示。