Pregunta

Estoy tratando de envolver mi cabeza alrededor de la mangosta, pero estoy teniendo dificultades para encontrar cualquier tipo de documentación para algunas de las opciones de consulta más avanzados, específicamente los métodos .in y .Sort. ¿Cuál es la sintaxis para la clasificación, por ejemplo, a una persona por la edad?

db.model("Person").find().sort(???).all(function(people) { });

Entonces, digamos que quiero encontrar una película basada en un género, donde una película puede tener muchos géneros (en este caso, una matriz de cadenas). Es de suponer, que haría uso de la función .en a lograr eso, pero no estoy seguro de lo que sería la sintaxis. O tal vez no tenga que utilizar el método .in del todo ...? De cualquier manera, estoy perdido.

db.model("Movie").find().in(???).all(function(movies) { });

Alguien tiene alguna idea? O mejor aún, un enlace a una cierta documentación completa?

Gracias!
Chris

¿Fue útil?

Solución

Sí, la documentación mangosta se está quedando en algunas de estas cosas, y por desgracia, la solución no es muy intuitivo (viene con el territorio al usar algo todavía va a través de cambios de desarrollo y API rápidos en el camino a la versión 1.0)

Mientras tanto, esto va a hacer lo que usted está buscando en términos de clasificar:

db.model("Person").find().sort([['age','ascending']]).all(function(people) { });

En cuanto a la pregunta sobre las relaciones anidadas más complejas, si no lo ha hecho, es posible que desee comenzar con el excelente MongoDB documentación , específicamente los artículos en esquema de diseño , consultas avanzadas y punto de notación (alcanzando en objetos) . Conociendo MongoDB dentro y por fuera deben hacer navegar las partes más oscuras de la mangosta una brisa.

Este es un ejemplo para encontrar películas por géneros usando $ en:

db.model("Movie").find({ 'genres': { $in: ['Horror','Comedy'] } }).all(function(movies) { });

Otros consejos

La respuesta de Daniel no funcionó para mí. Creo que la API ha cambiado desde 1.0.14 (http://groups.google.com/group/mongoose-orm/browse_thread/thread/cc77914021940e73/34fc6f45938a2242?lnk=raot)

Esto es lo que funcionó para mí:

db.model("Person")
  .find()
  .sort('age', 1)
  .execFind(function(err, people) { 
 });
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top