sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb-fråga på kapslade arrayelement

Eftersom det inte finns något sätt att säga vilken drivrutin du använder finns här en skallösning:

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

Förresten, du kan förenkla dokumentstrukturen genom att utelämna Platform och PublishingRange och tilldela arrayer till Platforms en PublishingRanges respektive.




  1. använder kartan för att cache för cirka 5000 poster i Javascript-applikation VS Redis

  2. Tryck element i valfri position av array i underdokumentet

  3. MongoDB $weeklyUpdate #65 (15 april 2022):GDELT, Mongoose &Hackathon Time!

  4. Hur implementerar MongoDB sina rumsliga index?