Originalmente publicado en la lista de correo Griales ...Grails Plugin MongoDB: Colecciones Embedded vs Referencias
No soy generalmente un tipo de base de datos pero con el lanzamiento de la última versión del plugin para mongodb griales, quería ver qué la gran cosa es con bases de datos sin SQL. MongoDB parece bastante interesante. Estaba leyendo la información sobre el almacenamiento de documentos orientados y me encontré con el siguiente escenario:
Cliente// orden de partidas individuales
El médico dice que las órdenes deben ser una colección. clientes una colección. los artículos de línea deben ser una matriz de elementos de línea incrustados en el objeto del orden.
Con respecto a GORM, ¿cómo se garantiza este patrón? Normalmente tendría lo siguiente:
class Customer {
static hasMany = [orders: Order]
}
class Order {
static hasMany = [orderItems: OrderItem]
static belongsTo = [customer:Customer]
}
class OrderItem {
static belongsTo = [order:Order]
}
¿Cómo me aseguro de que Orders sea propia y no esté integrada en Customer? Si ese es el valor predeterminado, ¿cómo me aseguro de que los artículos de pedido estén incrustados en el pedido y no en su propia colección? ¿Cuál es el valor predeterminado aquí?
Gracias.
Hola, esta respuesta es útil, pero realmente no responde a la pregunta, solo proporciona una dirección para encontrar la respuesta. Específicamente, todavía no tengo claro si cosas como "hasMany" se usarían en un contexto mongodb (supongo que no), y si no, ¿cómo exactamente esto debería denotarse en la clase de dominio de modo que las colecciones sean almacenado correctamente en mongodb. Creo que si la pregunta de Gregg ("¿Cómo me aseguro de que Orders ... incrustado en Order y no en su propia colección? ¿Cuál es el valor predeterminado aquí?") Se responda explícitamente, eso sería un buen ejemplo del que aprender. – mindthief
@mindthief: Actualicé la respuesta para ser un poco más explícito al responder la pregunta. Además, creo que "hasMany" es más un tipo de concepto de base de datos relacional, por lo que MongoDB no lo usa. – Pat
... Gracias Pat !! – mindthief