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

Pengembalian data asimetris MongoDB, item pertama dalam array dikembalikan secara penuh, sisanya dengan properti tertentu dihilangkan?

Jika array subdocument Anda yang ingin Anda hilangkan tidak terlalu besar. Saya hanya akan menghapusnya di sisi aplikasi. Melakukan pemrosesan di MongoDB berarti Anda memilih untuk menggunakan sumber daya komputasi MongoDB daripada aplikasi Anda. Umumnya aplikasi Anda lebih mudah dan lebih murah untuk diskalakan, jadi implementasi pada lapisan aplikasi lebih disukai.

Tetapi dalam kasus yang tepat ini tidak terlalu rumit untuk mengimplementasikannya di MongoDB:

db.collection.aggregate([
  {
    $addFields: { // keep the first element somewhere
      first: { $arrayElemAt: [ "$mainArray", 0] }
    }
  },
  {
    $project: { // remove the subdocument field
      "mainArray.array": false
    }
  },
  {
    $addFields: { // join the first element with the rest of the transformed array
      mainArray: {
        $concatArrays: [
          [ // first element
            "$first"
          ],
          { // select elements from the transformed array except the first
            $slice: ["$mainArray", 1, { $size: "$mainArray" }]
          }
        ]
      }
    }
  },
  {
    $project: { // remove the temporary first elemnt
      "first": false
    }
  }
])

Taman Bermain MongoDB




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. array push pembaruan mongodb

  2. Seberapa amankah mode aman MongoDB pada sisipan?

  3. Bagaimana saya bisa menggunakan Driver MongoDB dengan kerangka kerja C# ASP.NET Core API?

  4. Membandingkan dua array objek dan memeriksa apakah mereka memiliki elemen yang sama

  5. Batas waktu koneksi Pymongo dari mesin jarak jauh