MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да търсите поле с масив във вложен поддокумент mongodb?

Можете да използвате тръбопровод за справка, за да управлявате вложено търсене

const pipeline = [
   {
     $match: {_id: new mongoose.Types.ObjectId(req.user.userId)}
   },
   {
     $lookup: {
       from: 'levels',
       let: { level_id: "$teamInfo.challenges.levelId" },
       pipeline: [
         {
           $match: {
             $expr: {
               $eq: ["$_id", "$$level_id"]
             }
           }
         },
         {
           $lookup: {
             from: '<level collection>',
             localField: "levelId",
             foreignField: "_id",
             as: "levelInfo"
           }
         },
         {
           $project: {
             levelInfo: {
               name: "$levelInfo.name"
             }
             title: 1
           }
         }
       ],
       as: "challenges"
     },

   },
   { $project: {
     _id: 1,
     fullname: 1,
     username: 1,
     teamInfo: {
       challenges: "$challenges"
     }
   }}
]

const result = await User.Aggregate(pipeline)

надявам се това да помогне!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да премахнете документ, посочен от идентификатор в mongoDB от php?

  2. Актуализиране на запис с mongoose

  3. MongoDB актуализира вложен масив

  4. В Jongo, как да намерите множество документи от Mongodb чрез списък с идентификатори

  5. SCUMM:Инфраструктура за мониторинг на база данни, базирана на агенти в ClusterControl