如何使用java在mongodb中仅获取文档的objectId

5 java mongodb mongodb-java

我只想从具有匹配条件的 mongodb 中获取 objectId。我可以使用 dbobject 和 cursor 方法获取它。但是我在这里使用了 mongo 客户端,但不知道该怎么做。感谢您

    MongoClient client = new MongoClient("localhost", 27017);
    MongoDatabase database = client.getDatabase("baazaronline");
    MongoCollection<Document> collection = database
            .getCollection("Attribute");

    Bson filter = new Document("attcode", attcode);

    Bson newValue = new Document("DefautV", DefautV).append("IVSO", IVSO).append("UniqueV", UniqueV).append("ValuesR", ValuesR).append("Visiblename", Visiblename).append("citso", citso).append("values",values);
    Bson updateOperationDocument = new Document("$set", newValue);
    collection.updateOne(filter, updateOperationDocument);

    client.close();
Run Code Online (Sandbox Code Playgroud)

use*_*814 5

使用findOneAndUpdate返回Documentas 结果并映射_id.

就像是

ObjectId id = collection.findOneAndUpdate(filter, updateOperationDocument).get("_id", ObjectId.class);
Run Code Online (Sandbox Code Playgroud)

更新:包含Projection以将响应限制为仅包含 _id 字段。

FindOneAndUpdateOptions findOneAndUpdateOptions = new FindOneAndUpdateOptions();
findOneAndUpdateOptions.projection(Projections.include("_id"));
ObjectId id  =  collection.findOneAndUpdate(filter, updateOperationDocument, findOneAndUpdateOptions).getObjectId("_id");
Run Code Online (Sandbox Code Playgroud)