MongoDB 仅在存在时按数组 属性 过滤
MongoDB filter by array property only if it exists
我的数据库对象有一个名为 tags
的可选 属性,它是一个字符串数组。我想写一个 returns 对象的查询,如果它们符合以下条件之一:
- 他们没有
tags
属性。
- 他们有一个标签 属性,其中至少有一个项目包含在另一个名为
queryTags
的数组中
通过阅读文档,我想到了以下内容,但它不起作用:
let query = {
tags: { '$or': [{'$exists': false}, {'$in': queryTags}]}
}
$or
是顶级运算符,因此您的查询需要是:
let query = {
'$or': [{tags: {'$exists': false}}, {tags: {'$in': queryTags}}]
}
我的数据库对象有一个名为 tags
的可选 属性,它是一个字符串数组。我想写一个 returns 对象的查询,如果它们符合以下条件之一:
- 他们没有
tags
属性。 - 他们有一个标签 属性,其中至少有一个项目包含在另一个名为
queryTags
的数组中
通过阅读文档,我想到了以下内容,但它不起作用:
let query = {
tags: { '$or': [{'$exists': false}, {'$in': queryTags}]}
}
$or
是顶级运算符,因此您的查询需要是:
let query = {
'$or': [{tags: {'$exists': false}}, {tags: {'$in': queryTags}}]
}