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. 存在しないドキュメントのみをインポートするにはどうすればよいですか?

    2. MongoDBでJSONを使用していますか?

    3. Redisの概念:メモリ内またはDB内?

    4. リモートRedisサーバーに接続するにはどうすればよいですか?