首页 > 解决方案 > 选择一个数组的一个数组匹配一个条件的文档

问题描述

我有以下文件:

{
  "key": [
    [
      "FOO",
      "BAR"
    ],
    [
      "FOO",
      "BAZ"
    ]
  ]
}

当数组中的至少一个key数组包含 100% 的某些值时,我想检索此文档。

例子:

+--------------+----------------+
| Given values | Should Match ? |
+--------------+----------------+
| FOO          | Yes            |
| BAR          | Yes            |
| BAZ          | Yes            |
| FOO, BAR     | Yes            |
| FOO, BAZ     | Yes            |
| BAR, BAZ     | No             |
+--------------+----------------+

从文档中,看起来使用$elemMatchand$all运算符可以工作,但它没有(以下内容不返回任何内容):

{
  "key": {
    "$elemMatch": {
      "$all": [
        "FOO"
      ]
    }
  }
}

游乐场:https ://mongoplayground.net/p/BtqWjoUkASs

总而言之,我想$all在另一个数组中包含的每个数组上运行运算符。

标签: mongodb

解决方案


推荐阅读