Cómo ordenar una matriz en una colección
He estado buscando clasificar una matriz interna específica en una colección, uso doctrine-mongodb-bundle en symfony2. Mi colección :
"page":
{
"_id": "56rgt46rt54h68rt4h6"
"categories":
[{
"_id": "2g56rt1h65rt165165erg4"
"products":[
{"name":"A", "pos": 2},
{"name":"B", "pos": 7},
{"name":"C", "pos": 1},
{"name":"D", "pos": 5}
]
}]
}
Ojala tuviera :
"page":
{
"_id": "56rgt46rt54h68rt4h6"
"categories":
[{
"_id": "2g56rt1h65rt165165erg4"
"products":[
{"name":"C", "pos": 1},
{"name":"A", "pos": 2},
{"name":"D", "pos": 5},
{"name":"B", "pos": 7}
]
}]
}
Y mis entidades:
/**
* @MongoDB\EmbeddedDocument
*/
class Category
{
/**
* @MongoDB\Id(strategy="auto")
*/
protected $id;
/**
* @MongoDB\String
*/
protected $name;
/** @MongoDB\EmbedMany(targetDocument="\Document\Product") */
private $products = array();
}
/**
* @MongoDB\EmbeddedDocument
*/
class Product
{
/**
* @MongoDB\Int
*/
protected $pos;
/**
* @MongoDB\String
*/
protected $name;
}
Soy nuevo en DoctrineMongoDBBundle, tal vez no sea una buena idea acumular una matriz interna (EmbedMany), y sería mejor tener varias colecciones. Y así guardar la referencia.