使用 mongodb-java-api,是否可以在一次操作中 "select" objectID 和 return 来自 Mongodb.find 操作的值?

With the mongodb-java-api, is it possible to "select" the objectID and return the value from a Mongodb.find operation in one operation?

我有兴趣从单个文档中查找 ID 作为查找操作的结果。

在 Robomongo 中,我可以通过以下语句获取相关值:

db.collection.find({ "field" : {$exists: true}}).limit(1).next()._id.valueOf()

我必须使用 Java 中的最少代码是多少?

因为您只需要找到一份文档就可以使用

DBCollection.findOnefindOne(DBObject query, DBObject projection)

此外,您只需要找到 _id。所以,我只预测了 _id.

    MongoClient mongo = new MongoClient("localhost", 27017);
    DB db = mongo.getDB("test");
    DBCollection collection = db.getCollection("collection");
    DBObject obj =  collection.findOne(new BasicDBObject("name", new BasicDBObject(
            "$exists", true)),new BasicDBObject("_id",1));
    ObjectId id = (ObjectId) obj.get("_id");        
    System.out.println(id.toHexString());