sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB - $setIsSubset-operatören fungerar inte med $match stage

Du bör använda $expr om du vill använda $setIsSubset (vilket är ett uttryck) inuti $match :

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

För MongoDB-versioner lägre än 3.6 du kan använda $redact :

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


  1. Indirekt modifiering av överbelastad egendom App\Dossier::$program har ingen effekt

  2. mongodb - skapa dokument om det inte finns, annars tryck till array

  3. Mongoose-instansen .save() fungerar inte

  4. Hur använder man variabel mongoose-fråga?