如何使用其 Java 驱动程序 (3.5.0) 从 Mongo 中的字段获取值

How to get values from a field in Mongo, using its Java Driver (3.5.0)

我在 javascript 中使用 MongoDB,并且一直在使用 Mongo 的 Java 驱动程序。 (这是因为它是 JAR 格式,而我使用的是 Mirth Connect)。问题是,我正在尝试使用来自另一个 collection 的字段并将信息带到新的 collection。根据我的阅读,filter from the Java Driver should return a DBCursor。我不擅长 javascript,并且还没有弄清楚如何从我已经进行的查询中的字段中获取值。

我正在使用它来进行查询:

var uri = new Packages.com.mongodb.MongoClientURI("mongodb://usr:pwd@localhost:27017/admin");
var mongoClient = new Packages.com.mongodb.MongoClient(uri);
var database = mongoClient.getDatabase("mydb");
var collection = database.getCollection("mycollection");    
var person = collection.findOne(com.mongodb.client.model.Filters.eq("person.id", id));

例如,我想要与ID关联的人的姓名。任何有关我如何获得它的帮助,将不胜感激。

collection 中的 JSON 也是这样的:

{"patient" : {
                    "id": 1234,
                    "first_name": "Peter",
                    "last_name": "Parker",          
                },
 "other_stuff": ...
}

尝试使用以下代码使用点符号查找一个 (find + first) 来访问患者的名字。

var uri = new Packages.com.mongodb.MongoClientURI("mongodb://usr:pwd@localhost:27017/admin");
var mongoClient = new Packages.com.mongodb.MongoClient(uri);
var database = mongoClient.getDatabase("mydb");
var collection = database.getCollection("mycollection");    
var personName = collection.find(com.mongodb.client.model.Filters.eq("person.‌​id", id)).first().get("patient.first_name")