MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB $ group (mongo sân chơi)

Bạn cần hai giai đoạn bổ sung. Trước tiên, bạn có thể chạy $ giảm để làm phẳng ExerciseDetail mà bây giờ là một mảng của các mảng. Sau khi hoàn tất, bạn có thể chạy $ map với $ filter lồng nhau để ghép nối Sets với ExerciseDetails :

{
    $addFields: {
        ExerciseDetail: {
            $reduce: {
                input: "$ExerciseDetail",
                initialValue: [],
                in: {
                    $concatArrays: [ "$$value", "$$this" ]
                }
            }
        }
    }
},

{
    $project: {
        _id: 1,
        Sets: {
            $map: {
                input: "$Sets",
                as: "set",
                in: {
                    $let: {
                        vars: {
                            exDetail: {
                                $arrayElemAt: [
                                    { $filter: { input: "$ExerciseDetail", cond: { $eq: [ "$$this._id", "$$set.ExerciseId" ] } } },
                                    0
                                ]
                            }
                        },
                        in: {
                            $mergeObjects: [
                                "$$set", "$$exDetail"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Sân chơi Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Kiểm tra xem mảng lồng nhau có chứa mảng con không

  2. Kiểm thử đơn vị với MongoDB

  3. Làm cách nào để xác định dải phân đoạn cho mỗi phân đoạn trong Mongo?

  4. MongoDB được nhúng trong java

  5. Làm thế nào để xử lý các truy vấn phân trang đúng cách với mongodb và php?