我在集合k上有一个索引{s:1}
,如:
k中的数据喜欢:
{ s:"aaa"} ,
{s:"bbb"} ,
{s:""}
使用{s:{$gt:""}}
找出长度大于0的每个项目是否安全?
答案 0 :(得分:2)
我认为这是基于以下事实的“安全”:
要测试索引是否正常工作,您可以执行
db.collectionName.find({s: {$gt: ""}}).explain()
当看到"cursor" : "BtreeCursor s_1"
时,这意味着索引有效。
但是,您是否考虑修改应用程序逻辑并删除s
字段为空?
db.test.find({s: {$exists: false}}).hint({s: 1})
可以在此查询中使用。它比$gt
更具自然性。 s
时。 答案 1 :(得分:1)
使用$ ne可能更合适
即“不等于”