Тъй като Картите са тяхна собствена колекция, ще трябва да преминете през всяка колекция от Карти, търсейки в рамките на местоположението, към което е посочен вашият Player.
Не можете да получите директен достъп до вградените документи. Трябва да влезете през колекцията и да продължите надолу.
За да избегнете повторение на всички карти, можете да съхраните както препратката към местоположението, така и препратката към картата във вашия документ на Player. Това ви позволява да свържете критерии, които избират вашата карта и след това местоположението в нея. Трябва да кодирате метод във вашия клас Player, за да се справите с това.
def location
self.map.locations.find(self.location_id)
end
И така, подобно на начина, по който отговорихте сами, с изключение на това, че все още можете да съхранявате location_id в документа на вашия плейър, вместо да използвате coord attribs.
Друг начин би бил да поставите Карти, Местоположения и Играчи в техните собствени колекции, вместо да вграждате местоположението във вашата колекция от карти. След това бихте могли да използвате референтни връзки, без да правите нищо фантастично... но всъщност просто използвате йерархична база данни, като че ли е релационна база данни в този момент...