MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak odwołać się do osadzonego dokumentu w Mongoid?

Ponieważ mapy są osobną kolekcją, trzeba będzie przeszukiwać każdą kolekcję map w obrębie tej lokalizacji, do której odnosi się Twój odtwarzacz.

Nie masz bezpośredniego dostępu do osadzonych dokumentów. Musisz przejść przez kolekcję i zejść w dół.

Aby uniknąć iteracji wszystkich map, możesz przechowywać zarówno odniesienie do lokalizacji, jak i odniesienie do mapy w dokumencie odtwarzacza. Pozwala to na łączenie kryteriów, które wybierają mapę, a następnie lokalizację na niej. Aby to obsłużyć, musisz zakodować metodę w swojej klasie Player.

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

Tak więc, podobnie jak sam odpowiedziałeś, z tym wyjątkiem, że nadal możesz przechowywać identyfikator lokalizacji w dokumencie odtwarzacza zamiast używać atrybutów współrzędnych.

Innym sposobem byłoby umieszczenie Map, Lokacji i Graczy w ich własnych kolekcjach zamiast osadzania Lokacji w swojej kolekcji Map. Wtedy możesz użyć relacji referencyjnych bez robienia niczego wymyślnego ... jednak tak naprawdę tylko używasz hierarchicznej bazy danych, lubi to w tym momencie jest relacyjną bazą danych ...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongo - cli spada z Failed to mlock:Nie można przydzielić zablokowanej pamięci

  2. SpringBoot w Docker nie łączy się z Mongo w Docker

  3. Rails Mongoid nie może się uwierzytelnić - błąd 13:brak autoryzacji dla zapytania w my_db.my_collection

  4. Jak mogę obliczyć całkowitą dodatnią, całkowitą ujemną cenę i sumę za pomocą Node.js i Mongoose?

  5. Różnica między teraz a daną datą