{s:1}
次のようなコレクション kのインデックスがあります。
k like のデータ:
{ s:"aaa"} ,
{s:"bbb"} ,
{s:""}
{s:{$gt:""}}
s の長さが 0 より大きいすべてのアイテムを見つけるために使用しても安全ですか?
{s:1}
次のようなコレクション kのインデックスがあります。
k like のデータ:
{ s:"aaa"} ,
{s:"bbb"} ,
{s:""}
{s:{$gt:""}}
s の長さが 0 より大きいすべてのアイテムを見つけるために使用しても安全ですか?
次の事実に基づいて「安全」だと思います。
インデックスが適切に機能するかどうかをテストするには、実行できます
db.collectionName.find({s: {$gt: ""}}).explain()
が表示されている場合"cursor" : "BtreeCursor s_1"
は、インデックスが機能していることを意味します。
ただし、アプリケーション ロジックを変更して、s
空のフィールドを削除することを検討しますか?
db.test.find({s: {$exists: false}}).hint({s: 1})
このクエリで使用できます。より自然です$gt
。s
。おそらく $ne を使用する方が適切でしょう
つまり、「等しくない」