1

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

感谢您的任何提示。

4

0 回答 0