如何使用Java在MongoDB 3.3中按_id删除文档

如何使用Java在MongoDB 3.3中按_id删除文档,java,mongodb,nosql,Java,Mongodb,Nosql,在MongoDB中如何通过_id删除文档,我遇到了一些问题。我可以按其他属性删除没有问题,但我似乎缺少按_id删除的正确语法 我的文件的格式如下: { "_id" : { "$oid" : "57a49c6c33b10927ff09623e" }, "name" : "Brad" } 下面是我正在使用的Java代码: // Boiler plate MongoClient client = new MongoClient( "localhost" , 27017 ); MongoDatabas

在MongoDB中如何通过_id删除文档,我遇到了一些问题。我可以按其他属性删除没有问题,但我似乎缺少按_id删除的正确语法

我的文件的格式如下:

{ "_id" : { "$oid" : "57a49c6c33b10927ff09623e" }, "name" : "Brad" }
下面是我正在使用的Java代码:

// Boiler plate
MongoClient client = new MongoClient( "localhost" , 27017 );
MongoDatabase db = client.getDatabase("my-database");
MongoCollection<Document> collection = db.getCollection("my-collection")

// This works
collection.deleteOne(new Document("name", "Brad"));

// This does not work
collection.deleteOne(new Document("_id", "57a49c6c33b10927ff09623e"));
//锅炉板
MongoClient=新的MongoClient(“本地主机”,27017);
MongoDatabase db=client.getDatabase(“我的数据库”);
MongoCollection collection=db.getCollection(“我的收藏”)
//这很有效
集合。删除一个(新文件(“名称”、“Brad”));
//这行不通
收集.删除一份(新文件(“_id”,“57a49c6c33b10927ff09623e”);

有人知道我哪里出错了吗?

字段
\u id
的类型为
ObjectId
“57a49c6c33b10927ff09623e”的类型为String

相反,尝试

collection.deleteOne(new Document("_id", new ObjectId("57a49c6c33b10927ff09623e")));