MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB - L'opérateur $setIsSubset ne fonctionne pas avec l'étape $match

Vous devez utiliser $expr si vous voulez utiliser $setIsSubset (qui est une expression) à l'intérieur de $match :

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

Pour les versions de MongoDB inférieures à 3.6 vous pouvez utiliser $redact :

db.test.aggregate([
    {
        $redact: {
            $cond: {
                if: { $eq: [ { $setIsSubset: [["hello", "you"], "$words"]}, true ] },
                then: "$$KEEP",
                else: "$$PRUNE"
            }
        }
    }
])