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

Jak odkazovat na vložený dokument v Mongoidu?

Vzhledem k tomu, že Mapy jsou jejich vlastní sbírkou, budete muset iterovat každou sbírku map, která hledá umístění, na které se váš přehrávač odkazuje.

K vloženým dokumentům nemáte přímý přístup. Musíte vstoupit skrz sbírku a propracovat se dolů.

Chcete-li se vyhnout opakování všech map, můžete do dokumentu přehrávače uložit jak odkaz na umístění, tak odkaz na mapu. To vám umožní zřetězit kritéria, která vyberou vaši mapu a poté umístění v ní. Abyste to zvládli, musíte ve své třídě Player nakódovat metodu.

def location
  self.map.locations.find(self.location_id)
end

Tedy podobně, jako jste si sami odpověděli, s tím rozdílem, že místo použití atributů souřadnic můžete uložit location_id do dokumentu přehrávače.

Dalším způsobem by bylo umístit Mapy, Místa a Hráče do jejich vlastních sbírek namísto vkládání Umístění do vaší sbírky map. Pak byste mohli používat referenční vztahy, aniž byste dělali cokoli fantastického... ale ve skutečnosti používáte pouze hierarchickou databázi a v tuto chvíli se vám líbí, že je to relační databáze...



  1. Jak poslat oznámení pomocí angular.js?

  2. Jak mohu spustit MongoDB jako službu Windows?

  3. existuje způsob, jak automaticky generovat ObjectId, když je model mongoose nový?

  4. Přehled možností zálohování MongoDB