Java 无效的BSON字段名

Java 无效的BSON字段名,java,json,mongodb,Java,Json,Mongodb,我查找了这个问题的类似答案,但找不到任何答案 public void update(String id, String user) { Document document = Document.parse(user); UpdateResult result = database.getCollection("user") .updateOne(Filters.eq("_id", new ObjectId(id)), document); Sys

我查找了这个问题的类似答案,但找不到任何答案

public void update(String id, String user) {
    Document document = Document.parse(user);
    UpdateResult result = database.getCollection("user")
            .updateOne(Filters.eq("_id", new ObjectId(id)), document);

    System.out.println(result);
}
我的JSON负载如下所示

{
    "first": "John",
    "last": "Doe",
    "email": "john@example.com",
}
错误

首先是无效的BSON字段名

如果我首先从有效负载中删除,它将在最后一个对象上删除,依此类推。

updateOneFilters.eq\u id,new objectidd,document; 这是由您的文档格式引起的 updateOne{这里是条件},{这里是操作}

文档中没有任何操作,因此导致此错误。 你应该这样说:

database.getCollection("user")
        .updateOne(Filters.eq("_id", new ObjectId(id)), combine(set( <field1>, <value1>), set(<field2>, <value2> ) ));

可能的重复只使用replaceOne而不是updateOne
collection.replaceOne(eq("item", "paper"),
       Document.parse("{ item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] }"));