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

MongoDB $graphLookup dapatkan anak-anak di semua level - hasil bersarang

Sayangnya, Anda tidak bisa mendapatkan kedalaman penuh dalam format bersarang. Menggunakan tampilan adalah solusi yang memungkinkan Anda melakukan operasi itu, tetapi Anda perlu membuat tampilan baru untuk setiap tingkat penyematan yang Anda butuhkan. Sebagai gantinya, saya akan mempertimbangkan untuk melakukan pencarian grafik tanpa memberikan kedalaman, mulai dari tingkat akar, mengambil semua hierarki dalam satu kueri, sebelum menghitung pohon di tingkat aplikasi.

Ini akan terlihat seperti ini:

db.node.aggregate([
    { $match: {
        parentId: null
    }},
    { $graphLookup: {
        from: "node",
        startWith: "$nodeId",
        connectFromField: "nodeId",
        connectToField: "parentId",
        depthField: "depth",
        as: "children"
    }}
]);

Ini akan memungkinkan Anda mengambil seluruh hierarki sekaligus, jadi selanjutnya, Anda perlu menghitung pohon di aplikasi Anda, dari informasi yang akan Anda miliki di larik "anak".



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hindari parser string URL saat ini adalah peringatan yang tidak digunakan lagi dengan menyetel useNewUrlParser ke true

  2. Instal Driver phpMongo di windows

  3. Tidak dapat menimpa model `pengguna` setelah node js dikompilasi

  4. mongodb menghapus kolom kosong saat pembaruan

  5. Bagaimana cara menyembunyikan _id dari Agregasi?