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

jaký je skutečný účel $ref (DBRef) v MongoDb

DBRef je v zásadě samopopisující ObjectID, což je pomocník na straně klienta, který existuje ve všech ovladačích (myslím, že ve všech), umožňuje ve vaší aplikaci snadno získat související řádky.

Nejsou:

  • Připojení
  • Kaskádovatelné vztahy
  • Vztahy na straně serveru
  • Vyřešeno na straně serveru

Také se nepoužívají v Map Reduce, funkce byla odstraněna kvůli komplikacím se shardováním.

Není však vždy skvělé je používat, například zaberou dost místa, pokud znáte kolekci, která souvisí s tímto řádkem, ve srovnání s pouhým uložením ObjectID. Nejen to, ale kvůli tomu, jak jsou vyřešeny, musí být každý související záznam místo toho líně načítán jeden po druhém, pokud je možné vytvořit rozsah (snadno) pro dotazování na související řádky najednou, takže mohou zvýšit množství dotazů. se také dostanete do databáze, čímž se zvýší kurzory.



  1. MongoDb - Dotaz na pole

  2. Jak nakonfiguruji mongodb, aby odstranil staré soubory protokolu?

  3. Automaticky generované pole pro MongoDB pomocí Spring Boot

  4. Používá MongoDB znovu smazaný prostor?