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

时间:2017-04-18 14:14:42

标签: java mongodb mongodb-java

我想从mongodb只获得带有匹配crieteria的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();

1 个答案:

答案 0 :(得分:2)

使用findOneAndUpdate作为结果返回Document并映射_id

这样的东西
ObjectId id = collection.findOneAndUpdate(filter, updateOperationDocument).get("_id", ObjectId.class);

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

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