如何在mongoDB中搜索具有指定类型并包含特定值的文档

时间:2015-03-19 21:37:16

标签: mongodb search mongodb-query

我在这样的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. 的文档
  3. 获取任何值包含或等于1或2或5

  4. 的文档

    任何人都可以帮我这个吗?

1 个答案:

答案 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]}}
           ]
})