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

时间:2016-08-05 14:31:28

标签: java mongodb nosql

我有一个问题,想知道如何通过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"));

任何人都知道我哪里出错了?

1 个答案:

答案 0 :(得分:6)

字段_id的类型为ObjectId"57a49c6c33b10927ff09623e"的类型为字符串。

而是尝试

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