繁体   English   中英

如何使用Java驱动程序在MongoDB中获取嵌入式文档数组的特定值

[英]How to get specific values of an embedded document Array in MongoDB using Java Driver

我试图从数组中的每个嵌入式文档中获取所有站点名称。我尝试使用以下语法,但没有用

(sites。$。site)

{
  "user" : "username",
  "sites" : [{
      "sitename" : "site.com",
      "url" : "site.com",
      }, {
      "sitename" : "site2.com",
      "url" : "site2.com",
      },{
      "sitename" : "site2.com",
      "url" : "site2.com",
   }]
}

Mongo-java,

        MongoClient mongoClient = new MongoClient("localhost",27017);
        MongoDatabase database = mongoClient.getDatabase("Test");

        MongoCollection<Document> collection = database.getCollection("collection");
        ArrayList<Document> doc = new ArrayList<Document>();
        doc.add(new Document().append("$unwind","$sites"));
        doc.add(new Document().append("$project",new Document().append("sitename","$sites.sitename")));
        List<Document> results =collection.aggregate(doc).into(new ArrayList<Document>());
        for(Document res: results){
            System.out.println(res.toJson());
        }

输出:

        { "_id" : { "$oid" : "58c26ce044400b08ca6ff483" }, "sitename" : "site.com" }
        { "_id" : { "$oid" : "58c26ce044400b08ca6ff483" }, "sitename" : "site2.com" }
        { "_id" : { "$oid" : "58c26ce044400b08ca6ff483" }, "sitename" : "site2.com" }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM