Digamos que tengo una colección en mongodb cuyos objetos tienen una matriz anidada. Quiero ordenar en función del valor de un elemento particular de la matriz. es posible?¿Puedo ordenar por un elemento dentro de una matriz anidada en Mongo?
Por ejemplo (y acabo de hacer el ejemplo), si tengo una colección de tipos de películas (acción, comedia, romance) y ejemplos enviados por los usuarios, ¿puedo encontrar todos los objetos donde se envió un usuario determinado ordenado por el fecha de la película?
Por ejemplo, me gustaría encontrar todos los tipos en los que 'Aaron' presentó un ejemplo, ordenado por el año del ejemplo 'Aaron' enviado.
Es casi como una necesidad donde la cláusula en el género.
> db.movies.find(). Pretty();
{
"_id" : ObjectId("4f2f07c1ec2cb81a269362c6"),
"type" : "action",
"examples" : [
{
"title" : "Gladiator",
"year" : 2000,
"submitter" : "Aaron"
},
{
"title" : "Mission Impossiple",
"year" : 1996,
"submitter" : "Bill"
},
{
"title" : "The Terminator",
"year" : 1984,
"submitter" : "Jane"
}
]
}
{
"_id" : ObjectId("4f2f07edaee5d897ea09f511"),
"type" : "comedy",
"examples" : [
{
"title" : "The Hangover",
"year" : 2009,
"submitter" : "Aaron"
},
{
"title" : "Dogma",
"year" : 1999,
"submitter" : "Bill"
},
{
"tile" : "Airplane",
"year" : 1980,
"submitter" : "Jane"
}
]
}
> db.movies.find ({ 'examples.submitter': 'Aaron'}) tipo.. ({ 'Examples.year': 1}) bastante();
{
"_id" : ObjectId("4f2f07edaee5d897ea09f511"),
"type" : "comedy",
"examples" : [
{
"title" : "The Hangover",
"year" : 2009,
"submitter" : "Aaron"
},
{
"title" : "Dogma",
"year" : 1999,
"submitter" : "Bill"
},
{
"tile" : "Airplane",
"year" : 1980,
"submitter" : "Jane"
}
]
}
{
"_id" : ObjectId("4f2f07c1ec2cb81a269362c6"),
"type" : "action",
"examples" : [
{
"title" : "Gladiator",
"year" : 2000,
"submitter" : "Aaron"
},
{
"title" : "Mission Impossiple",
"year" : 1996,
"submitter" : "Bill"
},
{
"title" : "The Terminator",
"year" : 1984,
"submitter" : "Jane"
}
]
}
Nota los documentos se devuelven ordenados por la colecciones años (como se esperaba) - cualquier forma de ordenar con sólo las presentadas por un determinado usuario? para algunos detalles adicionales, estoy usando el controlador mongo nativo del nodo para nodejs.
No pensé que sería capaz de hacerlo, pero pensé que valía la pena intentarlo. Me alegro de haberlo mencionado, ya que el Marco de Agregación que mencionas parece que podría llevarme allí una vez listo/estable. ¡Gracias! – Zugwalt