我有一个mongodb查询,如果字段具有特定值,我想获取文档。
db.collection.find({key:{$in:['value1','value2']}})
如果我在命令之上运行,我会得到包含'value1'或'value2'的文档。但我们只想说没有价值观。我搜索db.collection.find({key:{$in:[]}})
,没有显示任何内容。并db.collection.find({key:{$in:[*]}})
给unexpected token*
我在$ in中使用哪张外卡来显示所有结果。?
答案 0 :(得分:0)
我认为这是$in
的逻辑上一致的行为。查询
db.collection.find({ "key" : { "$in" : [] } })
可以翻译为"找到key
的值是数组[]
"中包含的值之一的所有文档。由于数组[]
中没有值,因此没有匹配的文档。如果要查找key
的所有现有值,请使用.distinct
将其作为数组返回:
db.collection.distinct("key")
如果可能, .distinct
将使用索引。
如果您希望查询匹配所有文档,请忽略.find
:
db.collection.find()
正如评论中所建议的那样。