代码之家  ›  专栏  ›  技术社区  ›  Simeon Nakov

mongodb filter by array属性(仅当存在时)

  •  0
  • Simeon Nakov  · 技术社区  · 6 年前

    我的数据库对象有一个名为 tags 它是一个字符串数组。我想编写一个查询,如果对象符合以下条件之一,则返回这些对象:

    1. 他们没有 标签 属性。
    2. 它们有一个标记属性,该属性在另一个名为 queryTags

    通过阅读文档,我想出了以下方法,但不起作用:

    let query = {
        tags: { '$or': [{'$exists': false}, {'$in': queryTags}]}
    }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   JohnnyHK    6 年前

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

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