sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB multidimensional array-projektion

Du kan bruge aggregeringsrammen:

db.test.aggregate([
    { $unwind: '$arr' },
    { $limit: 1 },
    { $project: { _id: 0, arr: 1 } },
    { $unwind: '$arr' },
    { $skip: 1 },
    { $limit: 1 }
])

Returnerer:

{ "arr": 22 }

Rediger: Den originale plakat har ændret min løsning, så den passer til hans behov og kom frem til følgende:

db.test.aggregate([
    { $match: { name:"Olivia" } },
    { $project: { _id: 0,arr: 1 } },
    { $unwind: '$arr' },
    { $skip: 1 },
    { $limit:1 },
    { $unwind: "$arr" },
    { $skip: 2 },
    { $limit: 1 }
])

Denne forespørgsel vil resultere i { arr: 77 } givet de udvidede data fra OP. Bemærk, at $skip og $limit er nødvendige for at vælge de rigtige elementer i matrixhierarkiet.



  1. Hvordan konfigurerer man en forbindelse til Redis Sentinel ved hjælp af Jedis-biblioteket?

  2. Object.keys, hvordan man får en liste over nøgler i mongodb

  3. Sådan forespørges mongodb med DBRef

  4. Mongoose eller forespørgsel