私の製品コレクションでは、地域「GB」でリリースされたすべての製品を見つけることができます。
> db.products.find({'release.region':'GB'}).pretty();
{
"_id" : "foo",
"release" : [
{
"region" : "GB",
"date" : ISODate("2012-03-01T00:00:00Z")
},
{
"region" : "US",
"date" : ISODate("2012-09-01T00:00:00Z")
}
]
}
{
"_id" : "bar",
"release" : [
{
"region" : "FR",
"date" : ISODate("2010-07-01T00:00:00Z")
},
{
"region" : "GB",
"date" : ISODate("2012-05-01T00:00:00Z")
}
]
}
{
"_id" : "baz",
"release" : [
{
"region" : "GB",
"date" : ISODate("2011-05-01T00:00:00Z")
},
{
"region" : "NZ",
"date" : ISODate("2012-02-01T00:00:00Z")
}
]
}
GB のリリース日を使用して、日付の昇順で結果を並べ替えるにはどうすればよいですか? (例: 順序は baz、foo、bar である必要があります)
クライアント側で並べ替えを行うことはできません。
または、これを可能にするためにデータをより適切に整理するにはどうすればよいですか。
編集:「バー」の FR リリース日を変更して、vivek のソリューションが正しくないことを示しました。