に基づいてMongoDBでソートする方法はあり$elemMatch
ますか?たとえば、次のようなドキュメントがあります。
{
'user': ObjectId('fsdfsdf'),
...
'array_of_things': [
{
'attribute_1': ObjectId('sdfsdfsd'),
'attribute_2': ObjectId('sdfsfsdf'),
'value': 30000
},
{
'attribute_1': ObjectId('dfdfgfdg'),
'attribute_2': ObjectId('gdfgdfgd'),
'value': 100
},
{
'attribute_1': ObjectId('mbnmbbmb'),
'attribute_2': ObjectId('mbnmbnmb'),
'value': 2000
},
...
]
}
フィールド内の一致する要素に基づいてこのデータをクエリできる必要がありarray_of_things
ます(これは)で十分に単純$elemMatch
です。この問題は、特定の属性に一致する値(昇順または降順)で並べ替えることもできる必要があるために発生します。たとえば、クエリは次のようになります。
{
'user': ObjectId('fsdfsdf'),
'array_of_things': {
$elemMatch: {
'attribute_1': ObjectId('dfdfgfdg'),
'value': {
$gt: 1
}
}
}
}
のみで並べ替えるvalue
(たとえば、最初sort({ 'array_of_things.value': -1 })
に一致しない、任意の配列要素のすべての値でのみ並べ替える) attribute_1
。
これを行う方法はありますか?
これがすでに質問されている場合はお詫びしますが、調べてみると解決策が見つからないようです。