¿Cuál es la mejor manera de vincular el comportamiento a una colección Meteor?

En Meteor, cuando recuperas un registro de una base de datos, es solo un registro. Así que si tengo una colección llamadaDogs, unadog podría tenerfur: 'brown' obreath: 'stinky', pero no tiene unbark() método.

Obviamente, podría crear algunas funciones que esperan undog como un argumento y luego realizar operaciones en esedog. Incluso podría encapsular todas estas funciones en un solo constructor. No estoy loco por este enfoque, pero si alguien tiene una manera limpia y sensata de hacerlo, soy todo oídos.

Otro pensamiento que tuve fue envolver eldog en unBackbone.Model. Esto podría ser interesante, ya quefetch ysave podría ser redefinido para hacerfind yinsert oupdate, y puedes definir todo tu comportamiento allí también, pero he leído que este tipo de cosas generalmente no se recomienda.

¿Hay una manera correcta de hacerlo? Hay unMeteor.Model oficialmente en las obras? ¿Cómo están resolviendo los demás este problema?

Editar

Para aquellos que acudan a esta pregunta más de un año después de la respuesta aceptada: en el momento de esta edición, estoy usandoPaquete de mrt minimongoid de Exygy, que tiene algunas mejoras parala versión de haihappen Eso se menciona en la publicación del blog vinculada a la respuesta aceptada.

Actualmente estoy contribuyendo al repositorio para hacer que los conjuntos de resultados sean más parecidos a una relación. Esperemos que otros se aprovechen de él y se sientan inclinados a contribuir con una funcionalidad útil.

Editar

Otra respuesta sugirió usar eltransform Propiedad al crear la colección. Aunque definitivamente estoy prefiriendo algo que realmente no necesito construir yo mismo, esta característica agrega muchas posibilidades, y espero que cualquier equipo que esté trabajando en un ORM para Meteor se aproveche de esto en el centro. .

Aquí hay una entrada de blog explicando cómo usar eltransform propiedad.

También,minimongoid ahora está disponible como un paquete Meteor, y todavía lo estoy usando. Tiene soporte para validación y para declarar relaciones. También he agregado alguna funcionalidad a este paquete, por lo que si un tablero tiene muchas piezas,board.pieces().create(attributes) persistirá un nuevopiece grabar con lo dadoattributes y se asociará automáticamente con elboard. De las diversas soluciones que he visto, esta parece ser la más completa.

Respuestas a la pregunta(6)

Su respuesta a la pregunta