MongoDBは、これをすぐに実行する方法を提供していませんが、ドキュメントを更新して$sort
を使用するという回避策があります。 演算子を更新して配列を並べ替えます。
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
.aggregate()
は引き続き使用できます このような方法:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
ただし、配列を並べ替えるだけの場合、これは効率が低下します。絶対にそうすべきではありません。
このクライアント側は、.sort
を使用していつでも実行できます。 またはsorted
機能。