私の MongoDB データベースには、製品のコレクションがあります。各製品には、配列にリリース情報が含まれています。
{
"name" : "foo",
"release" : [{
"region" : "GB",
"active" : "Y",
"date" : ISODate("2012-03-01T00:00:00Z")
}, {
"region" : "US",
"active" : "Y",
"date" : ISODate("2012-09-01T00:00:00Z")
}, {
"region" : "FR",
"active" : "N",
"date" : ISODate("2010-01-01T00:00:00Z")
}]
}
GB 地域でアクティブなリリースが行われているすべての製品を検索し、結果を GB のリリース日で並べ替えたいと考えています。
私はこれを使用してこれをやろうとしました:
db.product.find(
{ "release" : { "$elemMatch" : { "region" : "GB", "active" : "Y" } } }
).sort({ "release.date" : 1 });
これは正しい製品を見つけますが、一致した要素からリリース日でソートしません (代わりに、配列から最小リリース日でソートします)。
ここまで読んだところ、マッチした要素のプロパティによるソートはできないようですが、これでよろしいでしょうか?
集約フレームワークでそれを行うことはできますか?