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

Bagaimana menemukan objek bersarang tertentu tanpa mengetahui kunci induk di mongodb

Anda dapat menggunakan $objectToArray (mongoDB 3.4.4 dan lebih tinggi), $filter dan $project dan dapatkan sesuatu seperti ini:

db.collection.aggregate([
  {
    $project: {
      obj: {
        $objectToArray: "$info"
      }
    }
  },
  {
    $project: {
      _id: 0,
      obj: {
        $filter: {
          input: "$obj",
          as: "item",
          cond: {
            $eq: [
              "$$item.v.city",
              "NY"
            ]
          }
        }
      }
    }
  },
  {
    $project: {
      info: {
        $arrayToObject: "$obj"
      }
    }
  },
])

Anda dapat melihatnya bekerja di sini

Idenya adalah memecah objek menjadi larik, memfilternya, lalu mengubah larik itu kembali menjadi objek.

Saya memfilter di city tapi saya yakin Anda mengerti.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb Query:Catatan terbaru berdasarkan tanggal untuk setiap item

  2. Kueri Java/MongoDB berdasarkan tanggal

  3. cara mengelompokkan di mongoDB dan mengembalikan semua bidang dalam hasil

  4. Apakah fungsi javascript sisi server memiliki masalah kinerja di mongoDB?

  5. Menggunakan Aplikasi Meteor di iPad yang disebarkan ke server jarak jauh dengan Meteor-up (masalah saat menghubungkan ke mongodb)