sql >> Database >  >> NoSQL >> MongoDB

Mongoengine-deferentie vindt plaats na gebruik van select_related()

Allereerst een woord van waarschuwing:dit is niet alleen een relationeel schema, maar ook een recursief relationeel schema. Je zou de relaties kunnen volgen en uiteindelijk alles . laden het UserAccount objecten.

Onthoud dat er geen deelnames zijn in MongoDB - dus u vraagt ​​de clientcode (mongoengine) om voor u in applicatie-joins uit te voeren - wat meerdere query's betekent en vervolgens de resultaten toewijzen aan de juiste documenten - dat is duur. Dus stel jezelf de vraag "is dit de juiste tool voor de klus? "

Uw waarnemingen zijn echter correct - standaard select_related() gaat slechts een enkele relatie omlaag, dus voor een gebruikersobject zal het alleen de eerste set vrienden verwijden en niet hun vrienden. U kunt de diepte wijzigen door deze door te geven aan select_related(max_depth=2) .




  1. Django+MongoDB versus Node.js+MongoDB

  2. Zijn Redis-updates synchroon?

  3. Omgaan met mongodb unieke, schaarse, samengestelde indexen

  4. Klasse 'MongoDB\Driver\Manager' niet gevonden