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

Bagaimana cara mengembalikan nilai varian dari setiap produk jika produk tersebut merupakan varian?

Anda harus dapat mencapai ini menggunakan $unwind dan $group dalam pipa agregasi Anda. Ini pertama-tama meratakan setiap atribut menjadi satu dokumen dan pada dokumen tersebut Anda dapat mengelompokkannya berdasarkan nilai atribut.

Terakhir, Anda dapat menggunakan $project untuk mendapatkan nama yang diinginkan untuk attributeValue :

db.collection.aggregate([
  {
    $unwind: "$attributeSet"
  },
  {
    $group: {
      _id: "$attributeSet.value",
      data: {
        "$addToSet": {
          productId: "$productId"
        }
      }
    }
  },
  {
    "$project": {
      _id: 0,
      data: 1,
      attributeValue: "$_id"
    }
  }
])

Lihat contoh sederhana ini di mongoplayground:https://mongoplayground.net/p/VASadZnDedc




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Masalah koneksi dari .Net MongoDb.Driver terbaru

  2. Apakah Moongoose 3.8.8 mendukung operator $position?

  3. Apa konvensi penamaan untuk MongoDB?

  4. Tidak dapat menghapus koleksi dari mongodb

  5. Networkx tidak pernah selesai menghitung sentralitas Antara untuk 2 juta node