使用mongo Java驱动程序更新MongoDB集合数组的所有文档

使用mongo Java驱动程序更新MongoDB集合数组的所有文档,java,mongodb,Java,Mongodb,我想通过Java代码实现以下更新功能 db.getCollection("test_rohit").update( {}, { $push: { x_axis: { $each: [ ], $slice: -1 } } }, { multi: true } ) - 我已经写了下面的代码来解决它 DBObject eachObject =new BasicDBObject(); eachObject.

我想通过Java代码实现以下更新功能

db.getCollection("test_rohit").update(
  {},
  {
    $push: {
      x_axis: {
         $each: [ ],
         $slice: -1
      }
    }
  },
  { multi: true } 
)

-

我已经写了下面的代码来解决它

DBObject eachObject =new BasicDBObject();
eachObject.put("$each", new String[0]);
eachObject.put("$slice", -1);
BasicDBObject pushDbObject =new BasicDBObject();
pushDbObject.append("x_axis", eachObject);
Bson modifiedObject =set("$push", pushDbObject);
Bson filter=new BasicDBObject("", "");
long result = collection.updateMany(filter, modifiedObject ).getModifiedCount();
但是它不起作用,因为我猜filter对象与{}不匹配(这通常意味着对所有文档都不匹配),所以如何为{}创建一个filter对象呢


样本文件

{
    "_id" : ObjectId("5c8718b9b5fe262104408374"),
    "axis" : "x",
    "message_time" : ISODate("2019-03-11T08:04:41.000Z"),
    "x_axis" : [ 
        0.9766, 
        1.9531, 
        2.9297, 
        3.9063, 
        4.8828, 
        5.8594, 
        6.8359, 
        7.8125, 
        8.7891,
    ],
    "etl_date_time" : ISODate("2019-03-12T02:26:01.510Z")
}

请提供一份示例文档。@Wernfried Domscheit用示例文档更新了问题。我试图在所有文档中保留每个x轴数组的最后数据。由于集合的大小更大(即500万个文档),因此无法进行查找,然后通过迭代将每个id传递给更新查询进行过滤