MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да препратка към вграден документ в Mongoid?

Тъй като Картите са тяхна собствена колекция, ще трябва да преминете през всяка колекция от Карти, търсейки в рамките на местоположението, към което е посочен вашият Player.

Не можете да получите директен достъп до вградените документи. Трябва да влезете през колекцията и да продължите надолу.

За да избегнете повторение на всички карти, можете да съхраните както препратката към местоположението, така и препратката към картата във вашия документ на Player. Това ви позволява да свържете критерии, които избират вашата карта и след това местоположението в нея. Трябва да кодирате метод във вашия клас Player, за да се справите с това.

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

И така, подобно на начина, по който отговорихте сами, с изключение на това, че все още можете да съхранявате location_id в документа на вашия плейър, вместо да използвате coord attribs.

Друг начин би бил да поставите Карти, Местоположения и Играчи в техните собствени колекции, вместо да вграждате местоположението във вашата колекция от карти. След това бихте могли да използвате референтни връзки, без да правите нищо фантастично... но всъщност просто използвате йерархична база данни, като че ли е релационна база данни в този момент...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Урок за MongoDB:Свързване с MongoDB в Scala

  2. MongoDB:Наличие на вложен ключ

  3. MongoDB връща True, ако документът съществува

  4. Как мога да се свържа с X509, като поставя всички опции в низа за връзка в драйвера node.js за mongodb?

  5. Mongodb не можа да намери потребител [email protected]