我有一个场景,我希望能够从与某个查询匹配的 mongo 集合中的所有文档的数组字段中删除除第一个和最后一个(按数组中的位置)之外的所有元素。我尝试了以下仅保留第一个元素的命令:
db.collection.update(*query*,
{
$push : {
arrayField : {
$each : [],
$slice : 1,
$slice : -1
}
}
},
{
multi : true
})
不幸的是,我认为使用简单的更新不可能实现我想要实现的目标。
最终,我将通过使用 mongo java 驱动程序的 java 客户端应用程序来编排这个,我不想检索所有文档,适当地修改它们,然后保留更改。
有关将在服务器上运行的解决方案的任何想法?