MongoDB中的多个列

MongoDB中的多个列

我收集了以下数据

_id name    type
1   Banana  Fruit
2   Tomato  Vegetable
3   Carrot  Vegetable
4   Tomato  Fruit

我的查询输入是一个成对的数组
[
 {
  name : 'Banana',
  type : 'Fruit'
 },
 {
  name : 'Tomato',
  type : 'Vegetable'
 }
]

我想要的结果是与数组中任何一对匹配的文档
_id name    type
1   Banana  Fruit
2   Tomato  Vegetable

我试过了
db.data.find({$and: [
    {name : {$in : ['Banana', 'Tomato']}},
    {type : {$in : ['Fruit', 'Vegetable']}}
]})

但我知道
_id name    type
1   Banana  Fruit
2   Tomato  Vegetable
4   Tomato  Fruit

这不是我想要的

最佳答案

以下查询可以获得预期的输出:

db.collection.find(
    {
        $or:[
            {
              name : 'Banana',
              type : 'Fruit'
            },
            {
              name : 'Tomato',
              type : 'Vegetable'
            }
        ]
    }
).pretty()

数据集:
{ "_id" : 1, "name" : "Banana", "type" : "Fruit" }
{ "_id" : 2, "name" : "Tomato", "type" : "Vegetable" }
{ "_id" : 3, "name" : "Carrot", "type" : "Vegetable" }
{ "_id" : 4, "name" : "Tomato", "type" : "Fruit" }

输出:
{ "_id" : 1, "name" : "Banana", "type" : "Fruit" }
{ "_id" : 2, "name" : "Tomato", "type" : "Vegetable" }

关于mongodb - $ in in MongoDB中的多个列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57803712/

10-09 04:11