2
I持って、次のコレクションこのようなクエリを使用してのMongoDBソート配列
[{
_id: 1
"origins": [
{
'depth': 100,
'magnitudes': [
{ 'magval': 5 }, { 'magval': 6 }, { 'magval': 7 }
]
},
{
'depth': 90,
'magnitudes': [
{ 'magval': 5 }, { 'magval': 6 }, { 'magval': 7 }
]
}
]
},
{
_id: 2
"origins": [
{
'depth': 100,
'magnitudes': [
{ 'magval': 5 }, { 'magval': 6 }, { 'magval': 7 }
]
},
{
'depth': 90,
'magnitudes': [
{ 'magval': 5 }, { 'magval': 6 }, { 'magval': 7 }
]
}
]
}
(pymongo):
collection.update(
{},
{
'$push': {
'origins': {
'$each': [],
'$sort': {'depth': -1}
}
}
}, multi=True, upsert=True
)
...私は場所で私のコレクションを更新することができます原点の埋め込み配列が深さフィールドによって降順にソートされるようにする。
質問は...各原点オブジェクトの子であるマグニチュードオブジェクトの埋め込み配列に対して同様のインプレースソートを実行するにはどうすればよいですか?私は、起源の中のマグニチュードが、魔法によって降順にソートされることを望んでいます。あなたがarray update operators $[ ]を使用できるのMongoDB V3.6では
{
"origins": [
{
'depth': 100,
'magnitudes': [
{ 'magval': 7 }, { 'magval': 6 }, { 'magval': 5 }
]
},
{
'depth': 90,
'magnitudes': [
{ 'magval': 7 }, { 'magval': 6 }, { 'magval': 5 }
]
}
]
}