Mongo db查询数组列表

时间:2015-07-30 05:25:39

标签: java mongodb

您好我正在使用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();

有什么建议我哪里出错?

0 个答案:

没有答案