使用 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());
我有兴趣从单个文档中查找 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());