如何使用Java Driver在MongoDB集合中获取特定的嵌入式文档?

时间:2015-12-27 14:36:36

标签: java mongodb

我的问题与this one类似,但我使用的是Java Driver。

这是我收藏的文件:

{
    "_id": "7",
    "servers": [
       {
          "ip_port": "127.0.0.1:8081",
          "name": "server1"
       },
       {
          "ip_port": "127.0.0.1:8082",
          "name": "server2"
       }
    ]
}

在查询之后我想得到这样的文档:

{
    "ip_port": "127.0.0.1:8081"
}

我试图在Java中翻译链接问题的第二个答案的说明,结果如下:

MongoCursor<Document> cursor = db.getCollection("collection")
        .find(and(eq("_id", "7"),
                eq("servers.name", "server1")))
        .projection(Projections.fields(Projections.elemMatch("servers"), Projections.excludeId()))
        .iterator();

但如果我执行此查询并打印cursor.next().toJson(),这就是我得到的:

{ "server" : [{ "ip_port" : "127.0.0.1:8081", "name" : "server1" }] }

那么如何使用Java Driver在Mongo DB中获取特定的嵌入式文档?

0 个答案:

没有答案