MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak wyszukać pole z tablicą w zagnieżdżonym poddokumencie mongodb?

Możesz użyć potoku wyszukiwania do obsługi zagnieżdżonego wyszukiwania

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)

mam nadzieję, że ta pomoc!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zaktualizuj wiele dokumentów w kolekcji za pomocą zmiany przypadku

  2. Utwórz drzewo JSON w Node.Js z MongoDB

  3. Potoki agregujące MongoDB z połączonym obiektem

  4. Konfiguracja projektu z Django 1.10, mongodb i Python 3.4.3

  5. Limit czasu połączenia Pymongo ze zdalnej maszyny