MongoDB-$setIsSubset运算符不使用$match阶段

MongoDB-$setIsSubset运算符不使用$match阶段,mongodb,mongodb-query,Mongodb,Mongodb Query,我构建了一个如下的查询: db.test.aggregate([{$match: {$setIsSubset: [['hello', 'you'], '$words']}}]) 我想返回字段“words”数组包含字符串[“hello”,“you]”的所有文档 执行此查询时,我收到以下错误: “errmsg”:“未知的顶级运算符:$setIsSubset” 我做错了什么 谢谢你的帮助 如果要在$match内使用$setIsSubset(这是一个表达式),则应使用: db.test.aggrega

我构建了一个如下的查询:

db.test.aggregate([{$match: {$setIsSubset: [['hello', 'you'], '$words']}}])
我想返回字段“words”数组包含字符串[“hello”,“you]”的所有文档

执行此查询时,我收到以下错误:

“errmsg”:“未知的顶级运算符:$setIsSubset”

我做错了什么

谢谢你的帮助

如果要在
$match
内使用
$setIsSubset
(这是一个表达式),则应使用:

db.test.aggregate([
    {
        $match: {
            $expr: {
                $setIsSubset: [["hello", "you"], "$words"]}
            }
        }
])
对于低于3.6的MongoDB版本,您可以使用:

如果要在
$match
中使用
$setIsSubset
(这是一个表达式),则应使用:

db.test.aggregate([
    {
        $match: {
            $expr: {
                $setIsSubset: [["hello", "you"], "$words"]}
            }
        }
])
对于低于3.6的MongoDB版本,您可以使用:

这项工作:

 db.test.aggregate([{$match: {'words': {'$all': ["hello", "you"] }}}])
这项工作:

 db.test.aggregate([{$match: {'words': {'$all': ["hello", "you"] }}}])

我得到了相同的错误,但是$expr:
“errmsg:”未知的顶级运算符:$expr“
@bettersavethan抱歉,您必须使用低于3.6的MongoDB。您可以尝试使用
$redact
,在这种情况下,就像在我编辑的回答中一样。我得到的错误与$expr:
“errmsg”:“未知顶级运算符:$expr”
@bettersavethan抱歉,您必须使用低于3.6的MongoDB。在这种情况下,您可以尝试使用
$redact
,就像我编辑的答案一样