mongodb,$ in的通配符

时间:2014-12-29 11:12:54

标签: mongodb mongoose mongodb-query

我有一个mongodb查询,如果字段具有特定值,我想获取文档。

db.collection.find({key:{$in:['value1','value2']}})如果我在命令之上运行,我会得到包含'value1'或'value2'的文档。但我们只想说没有价值观。我搜索db.collection.find({key:{$in:[]}}),没有显示任何内容。并db.collection.find({key:{$in:[*]}})unexpected token*我在$ in中使用哪张外卡来显示所有结果。?

1 个答案:

答案 0 :(得分:0)

我认为这是$in的逻辑上一致的行为。查询

db.collection.find({ "key" : { "$in" : [] } })

可以翻译为"找到key的值是数组[]"中包含的值之一的所有文档。由于数组[]中没有值,因此没有匹配的文档。如果要查找key的所有现有值,请使用.distinct将其作为数组返回:

db.collection.distinct("key")
如果可能,

.distinct将使用索引。

如果您希望查询匹配所有文档,请忽略.find

中的查询选择器
db.collection.find()

正如评论中所建议的那样。