sql >> Database >  >> NoSQL >> MongoDB

Mongodb-query op geneste array-elementen

Aangezien er geen manier is om te zien welk stuurprogramma je gebruikt, is hier een shell-oplossing:

db.foo.find({
    "Asset.Metadata.Platforms.Platform": {
        $elemMatch: {
            "@name": VAR_PLATFORM,
            "PublishingRanges.PublishingRange": {
                $elemMatch: {
                    "@startdate": {$gt: VAR_START},
                    "@enddate": {$lt: VAR_END}
                }
            }
        }
    }  
})

Trouwens, je zou de documentstructuur kunnen vereenvoudigen door Platform weg te laten en PublishingRange en het toewijzen van arrays aan Platforms een PublishingRanges respectievelijk.




  1. Hoe json-document verkregen van mongoDB te deserialiseren in een POJO?... (Migreren van Morphia naar Java Mongo Driver 3.0)

  2. SCAN vs KEYS-prestaties in Redis

  3. Welke database te kiezen (Cassandra, MongoDB, ?) voor het opslaan en opvragen van gebeurtenis- / log- / metrische gegevens?

  4. Django-nonrel vs Django-mongodb vs Mongokit vs pymongo native