Karena Peta adalah koleksinya sendiri, Anda perlu mengulangi setiap koleksi Peta yang mencari di dalam Lokasi yang dirujuk oleh Pemutar Anda.
Anda tidak dapat mengakses dokumen yang disematkan secara langsung. Anda harus masuk melalui koleksi dan turun ke bawah.
Untuk menghindari pengulangan semua Peta, Anda dapat menyimpan referensi Lokasi DAN referensi Peta di dokumen Pemutar Anda. Ini memungkinkan Anda untuk mengaitkan kriteria yang memilih Peta Anda dan kemudian Lokasi di dalamnya. Anda harus membuat kode metode pada kelas Player Anda untuk menangani ini.
def location
self.map.locations.find(self.location_id)
end
Jadi, mirip dengan bagaimana Anda menjawab sendiri kecuali Anda masih bisa menyimpan location_id di dokumen pemutar Anda alih-alih menggunakan atribut coord.
Cara lain adalah dengan menempatkan Peta, Lokasi, dan Pemain dalam koleksi mereka sendiri alih-alih menyematkan Lokasi dalam koleksi Peta Anda. Kemudian Anda dapat menggunakan hubungan referensi tanpa melakukan sesuatu yang mewah... namun Anda benar-benar hanya menggunakan database hierarkis seperti database relasional pada saat ini...