sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB - $setIsSubset-operatøren arbejder ikke med $match-stadiet

Du bør bruge $expr hvis du vil bruge $setIsSubset (som er et udtryk) inde i $match :

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

For MongoDB-versioner lavere end 3.6 du kan bruge $redact :

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


  1. MongoDB c#-driver:Ufølsom mellem store og små bogstaver Sammenlign ved hjælp af i eller indeholder på en liste ved hjælp af linq

  2. Opdater den samme egenskab for hvert dokument i en mongoDb-samling med forskellige værdier

  3. Er det muligt, at mongodbs $project returnerer et array?

  4. Forvirret over Mongoose/Mongo-terminologi. Er Sub-Docs/Embedded-Docs også samlinger?