MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB $graphLookup получава деца на всички нива дълбоко - вложен резултат

За съжаление, не можете да получите пълната дълбочина във вложен формат. Използването на изглед е заобиколно решение, което ви позволява да извършите тази операция, но ще трябва да създадете нов изглед за всяко ниво на вграждане, от което се нуждаете. Вместо това бих обмислил извършването на graphLookup без предоставяне на дълбочина, като се започне от основното ниво, извличане на цялата йерархия в една заявка, преди изчисляване на дървото на ниво приложение.

Това ще изглежда нещо подобно:

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

Това трябва да ви позволи да извлечете цялата йерархия наведнъж, така че след това трябва да изчислите дървото във вашето приложение от информацията, която ще имате в масива "children".



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoengine - Игнорирайте допълнителни полета за валидиране на схема

  2. Как да обобщим оценките на всички предмети в mongoDB

  3. Извършване на изявление на случай в рамката за агрегиране на mongodb

  4. Как да импортирам папка за дъмп в база данни на mongodb?

  5. Как да изхвърлите колекция в json файл с помощта на pymongo