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