sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Schema Design (vnořené pole vs. samostatná kolekce)

Vzhledem k tomu, že to zní, jako byste se ve skutečnosti potřebovali dotazovat na platební údaje mimo kontext klienta (tj. pro agregované přehledy), nechtěl bych přidávat každou jednotlivou platební položku do objektů sbírky klienta.

Určitě bych vytvořil sbírku platebních objektů a pak bych buď odkazoval na platební klíč v klientském objektu pro každou platbu a klientský klíč v platebním objektu, takže máte definitivní způsob, jak jeden k druhému propojit v obou směrech, nebo mít třetí kolekce mapující klienty k platbám.

Co je zde výhodnější, může skutečně záviset na vašem vzoru přístupu. Například možná ani nebudete potřebovat takové "cizí klíče" na obou sadách objektů, pokud bude vyhledávání vždy v jednom směru pro případy, kdy potřebujete vytvořit vztah.




  1. Démon Mongo se nespouští při spuštění služby mongod

  2. Pymongo/bson:Převeďte objekt python.cursor.Cursor na objekt serializovatelný/JSON

  3. Jak Trello zpracovává přeuspořádání karet, seznamů, kontrolních seznamů atd

  4. MongoDB vytáhne prvek z pole do hloubky dvou úrovní