MongoDBの2.4リリースでは、ここで別のオプションが提供されます。これは、 $sort
修飾子。
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [{timestamp: 456, x: 1}, {timestamp: 123, x: 2}, ...],
$sort: {timestamp: 1}
}
}
});
これにより、myarray
の要素が作成されます 昇順のtimestamp
でソートされて保存される更新されたドキュメントのフィールド 。
新しい要素を追加せずに既存の要素を並べ替えるだけの場合は、$each: []
を使用します。 :
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [],
$sort: {timestamp: 1}
}
}
});