我在这样的mongodb中插入了3个文件:
db.collection.insert({id:1, value:[1, 2, 3]})
db.collection.insert({id:2, value:[2, 4, 5]})
db.collection.insert({id:3, value:1})
然后我想:
获取其值类型为数组且包含1
获取任何值包含或等于1或2或5
任何人都可以帮我这个吗?
答案 0 :(得分:1)
我想获取其值类型为Array且包含1
的文档
使用$type
运算符
db.collection.find({ "value": { "$type": 4 }, "value": 1})
我想获得任何值包含或等于1或2或5的文档
使用$in
。引用文档
$ in运算符选择字段值等于指定数组中任何值的文档。
db.collection.find({ "value": { "$in": [1,2,5] }})
您可以在一个查询中执行此操作
db.collection.find({
"$or": [
{ "value": { "$type": 4 }, "value": 1 },
{ "value" : { "$in": [1,2,5]}}
]
})