オブジェクトがネストされた配列を持つコレクションがmongodbにあるとします。私は配列の特定の要素の値に基づいてソートしたい。これは可能ですか?Mongoのネストされた配列内の要素でソートすることはできますか?
たとえば、ムービータイプ(アクション、コメディ、ロマンス)のコレクションとユーザーが送信した例がある場合、特定のユーザーが投稿したオブジェクトをすべて見つけることはできますか?映画の日付?
たとえば、 'Aaron'が送信したサンプルのうち、 'Aaron'が送信した年の順にソートされたすべてのタイプを検索したいとします。
ほとんどの場合、ソートのwhere節が好きです。
> 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': 'アロン'})ソート({ 'examples.year':1})かなり();。。文書は(予想通り)のコレクションの年によってソート返され
{
"_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"
}
]
}
注 - 指定したユーザーが提出したものだけでソートする方法?私はnodejsのためのノードネイティブのmongoドライバを使用しています。
私はそれをすることができるとは思わなかったが、それはショットの価値があると思った。あなたが言及した集約フレームワークが準備ができて安定しているように見えるように見えるので、私はそれを持ち上げてうれしいです。ありがとう! – Zugwalt