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

MongoDB – Finden Sie Dokumente, die bestimmte Bedingungen für unbekannte Feldschlüssel erfüllen

Sie müssen mit $objectToArray beginnen um Ihre Schlüssel dynamisch zu lesen. Dann können Sie $map Eigenschaften zusammen mit $anyElementTrue um zu erkennen, ob es ein verschachteltes Feld in thing gibt enthält {"attribute1":"typeC"} :

db.collection.aggregate([
    {
        $match: {
            $expr: {
                $anyElementTrue: {
                    $map: {
                        input: { $objectToArray: "$thing" },
                        in: { $eq: [ "$$this.v.attribute1", "typeC" ] }                         
                    }
                }
            }
        }
    }
])

Mongo-Spielplatz