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}
}
}
});