Ich bin on Rails eine Datenbank in Ruby Aufbau Mongoid verwenden, die die folgenden drei Sammlungen Residenz, Karte und Router umfasst:Wie fügt man Dokumente (ObjectId) zu has_many und has_and_belongs_to_many Beziehungen mit Ruby on Rails mit Mongoid?
residence.rb
class Residence
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Geospatial
has_many :maps, inverse_of: :residence
has_many :routers, inverse_of: :residence
field :address, type: String
field :resident, type: String
end
map.rb
class Map
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Geospatial
belongs_to :residence, inverse_of: :maps
has_and_belongs_to_many :routers, inverse_of: :maps
embeds_many :pins
field :name, type: String
spatial_index "pins.loc"
end
router.rb
class Router
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Geospatial
belongs_to :residence, inverse_of: :routers
has_and_belongs_to_many :maps, inverse_of: :routers
field :loc, type: Point
field :MAC, type: String
field :name, type: String
field :serial, type: String
spatial_index :loc
end
Ich habe derzeit einen Aufenthaltsdokument, ein Kartendokument und ein Router-Dokument. Meine Frage ist, wie man die Beziehungen has_many, objects_to und has_and_belongs_to_many zwischen den Dokumenten implementiert, so dass das Residenzdokument die _id des Routers und die _id der Karte referenziert, das Kartendokument die _id des Routers referenziert und der Router referenziert die _id der Karte.
Tut mir leid, wenn dies unklar ist, und danke für jede Hilfe!
Edit: Hier ist eine Erklärung der Beziehungen: Viele Karten (Anzeigen unterschiedlicher Daten) können für jede Residenz generiert werden. Jede Residenz hat einen Router, aber möglicherweise mehr als einen Router. Die Router sind in der Karte enthalten, sollten aber nicht eingebettet werden, da sie ohne Karte existieren können.
Viele Karten (mit unterschiedlichen Daten) können für jede Residenz erstellt werden. Jede Residenz hat einen Router, aber möglicherweise mehr als einen Router. Die Router sind in der Karte enthalten, sollten aber nicht eingebettet werden, da sie ohne Karte existieren können. –
Ich habe die Assoziationen basierend auf Ihrem Kommentar geändert. –
Ich verstehe, wie Sie die Beziehungen in den Modellen definieren. Meine Frage ist, wie man Dokumente einfügt und spezifiziert, mit welchen Dokumenten es verwandt ist. –