特定のクエリに一致する mongo コレクション内のすべてのドキュメントの配列フィールドから、最初と最後 (配列内の位置による) を除くすべての要素を削除できるようにしたいシナリオがあります。最初の要素のみを保持する次のコマンドを試しました。
db.collection.update(*query*,
{
$push : {
arrayField : {
$each : [],
$slice : 1,
$slice : -1
}
}
},
{
multi : true
})
残念ながら、単純な更新を使用して達成したいことが可能だとは思いません。
最終的には、mongo Java ドライバーを使用して Java クライアント アプリケーションでこれを調整する予定です。すべてのドキュメントを取得して適切に変更し、変更を永続化する必要はありません。
サーバー上で実行されるソリューションのアイデアはありますか?