MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie würde ich in Mongo alle Sammlungselemente mit einem größeren Array abgleichen?

Verwenden von mongoDB Aggregationssatzoperator Sie können Ihr Array filtern. Finden Sie zuerst die Schnittmenge des gegebenen Arrays mit dem tatsächlichen Datenbankarray heraus und verwenden Sie danach die Set-Equals-Methode. Überprüfen Sie die folgende Abfrage:

db.collectionName.aggregate({
    "$project": {
    "checkAllElem": {
        "$setEquals": [{
            "$setIntersection": ["$items", [5, 2, 6, 4, 7, 8]]
        }, "$items"]
    },
    "items": 1
    }
}, {
    "$match": {
    "checkAllElem": true
    }
})