您好我正在使用mongo java 3.0驱动程序并尝试查询以下内容。我有一个实体类,里面有一个名字列表。我的问题是查询名称列表。我的代码是
if(e != null) {
for(int i = 0; i < e.getName().size(); i++) {
Document nameDocument = new Document();
nameDocument.append("fName", e.getName().get(i).getfName());
nameDocument.append("lName", e.getName().get(i).getlName());
nameDocument.append("dob", e.getName().get(i).getDob());
nameDocument.append("address", e.getName().get(i).getAddress());
nameDocumentList.add(nameDocument);
}
}
mongoCollection = mongoDatabase.getCollection("entity");
Document entityDocument = new Document();
entityDocument.append("entityId", e.getEntityId());
entityDocument.append("entityType", e.getEntityType());
entityDocument.append("nameIdentity", nameDocumentList);
mongoCollection.insertOne(entityDocument);
我的查询是:
FindIterable<Document> iterable = mongoDatabase.getCollection("entity")
.find(new Document("nameIdentity.fName", "Mujahid")
.append("nameIdentity.lName", "ali"));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document)
{
System.out.println(document);
}
});
如果我打印整个文档,这是有效的,但如果我只提取嵌入的文档列表字段
,则无效qname1 = document.getString("nameIdentity.fName").toString();
qname2 = document.getString("nameIdentity.lName").toString();
有什么建议我哪里出错?