MongoDB 仅在存在时按数组 属性 过滤

MongoDB filter by array property only if it exists

我的数据库对象有一个名为 tags 的可选 属性,它是一个字符串数组。我想写一个 returns 对象的查询,如果它们符合以下条件之一:

  1. 他们没有 tags 属性。
  2. 他们有一个标签 属性,其中至少有一个项目包含在另一个名为 queryTags
  3. 的数组中

通过阅读文档,我想到了以下内容,但它不起作用:

let query = {
    tags: { '$or': [{'$exists': false}, {'$in': queryTags}]}
}

$or 是顶级运算符,因此您的查询需要是:

let query = {
    '$or': [{tags: {'$exists': false}}, {tags: {'$in': queryTags}}]
}