MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB $group (taman bermain mongo)

Anda membutuhkan dua tahap tambahan. Pertama, Anda dapat menjalankan $reduce untuk meratakan ExerciseDetail yang sekarang adalah array dari array. Setelah selesai, Anda dapat menjalankan $map dengan $filter bertingkat untuk memasangkan Sets dengan 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"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Taman Bermain Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:mengembalikan filter yang cocok saat menggunakan $atau di find()

  2. Menyortir hasil kueri berdasarkan urutan item dalam larik kondisi yang disediakan di Mongoose

  3. Hitung Dot Product antara dua array dengan MongoDB Aggregate

  4. Ambil gambar yang disimpan dari mongodb menggunakan python

  5. Menggunakan $exists dalam ekspresi MongoDB