如何比较数组在MongoDB中是否包含相同的项目?

时间:2016-01-24 04:49:03

标签: mongodb

我有一个字段items,它是一个包含0个或更多项的数组。我想查找具有特定项目集的所有文档。他们应该只有这些项目而没有其他项目。项目的顺序未定义。

{
  "_id": 1,
  "items": ["foo", "bar", "qux"]
}
{
  "_id": 2,
  "items": ["bar", "qux"]
}
{
  "_id": 3,
  "items": ["foo", "bar", "qux", "biz"]
}
{
  "_id": 4,
  "items": ["foo", "qux", "bar"]
}

是否有可以在items上使用的查询运算符来获取(仅)“foo”,“bar”和“qux”的所有文档?因此,本例中的文档1和4。

1 个答案:

答案 0 :(得分:3)

使用$all$size

进行试用
db.collection.find({items: {$all: ["foo", "qux", "bar"], $size: 3}});