sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB - Hitta dokument som matchar vissa villkor för okända fältnycklar

Du måste börja med $objectToArray för att läsa dina nycklar dynamiskt. Sedan kan du $map egenskaper tillsammans med $anyElementTrue för att upptäcka om det finns något kapslat fält i thing som innehåller {"attribute1":"typeC"} :

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

Mongo Playground



  1. textindex krävs för $text-fråga

  2. redis-cli omdirigeras till 127.0.0.1

  3. MongoDB Unclean Shutdown - Kan inte repareras

  4. Få en lista över index i MongoDB