首页 > 解决方案 > Mongo db:查询与另一个传递数组的任何元素匹配的数组

问题描述

有像这样的文件:

{ _id:1, color:['red', 'green', 'yellow'},
{ _id:2, color:['red', 'blue', 'orange'},
{ _id:3, color:['blue', 'black', 'grey'}

现在我想做的是:如果我通过了 ['red']

它应该返回 id 为 1 和 2 的文档。如果我通过了 ['black', 'yellow'],它应该返回 id 为 1 和 3 的文档。

标签: arraysmongodbmongodb-query

解决方案


你可以使用$elemMatch来得到你想要的。

尝试这个:

db.collection.find({
  color: {
    $elemMatch: {
      $in: [
        "black",
        "yellow"
      ]
    }
  }
})

看看这个Mongo Playground 演示,使用查询。


推荐阅读