Ursprünglich auf der Grails-Mailingliste ...Grails MongoDB Plugin: Embedded Kollektionen vs Referenzen
ich nicht im Allgemeinen eine Datenbank Typ bin aber mit der Veröffentlichung der neuesten mongodb Plugin für Grails, wollte ich etwas sehen Das große Problem ist mit NoSQL-Datenbanken. MongoDB scheint ziemlich interessant zu sein. Ich habe die Informationen über Document orientierte Speicherung zu lesen und dann auf das folgende Szenario:
Kunde/Auftrag/Auftragsposition
Der Doc sagt Aufträge sollte eine Sammlung sein. Kunden eine Sammlung. Zeilenelemente sollten ein Array von in das Befehlsobjekt eingebetteten Zeilenelementen sein.
In Bezug auf GORM, wie wird dieses Muster sichergestellt? Ich würde typischerweise folgendes haben:
class Customer {
static hasMany = [orders: Order]
}
class Order {
static hasMany = [orderItems: OrderItem]
static belongsTo = [customer:Customer]
}
class OrderItem {
static belongsTo = [order:Order]
}
Wie stelle ich sicher, dass Bestellungen eine eigene Sammlung ist und nicht in den Kunden eingebettet? Wenn das die Standardeinstellung ist, wie stelle ich sicher, dass OrderItems in Order eingebettet sind und nicht in der eigenen Kollektion? Was ist der Standardwert hier?
Danke.
Hallo, ist diese Antwort hilfreich, aber es beantwortet nicht wirklich die Frage - es gibt nur eine Richtung, um die Antwort zu finden. Insbesondere bin ich immer noch nicht klar darüber, ob Dinge wie "hasMany" in einem mongodb-Kontext verwendet werden würden (ich vermute nicht), und wenn nicht, wie genau sollte dies in der Domänenklasse so bezeichnet werden, dass die Sammlungen sind richtig in mongodb gespeichert. Ich denke, wenn Greggs Frage ("Wie sorge ich dafür, dass Orders ... in Orden eingebettet und nicht seine eigene Sammlung? Was ist der Standard hier?") Explizit beantwortet wird, wäre das ein gutes Beispiel, von dem man lernen könnte. – mindthief
@mindthief: Die Antwort wurde aktualisiert, um die Frage etwas deutlicher zu beantworten. Außerdem glaube ich, dass "hasMany" eher ein relationales Datenbankkonzept ist, weshalb MongoDB es nicht verwendet. – Pat
... Danke Pat !! – mindthief