繁体   English   中英

检索 mongodb 集合中所有文档的字段

[英]Retrieve fields of all documents in mongodb collection

我正在尝试检索所有文档的所有字段并在 Mongo 集合中嵌入文档。 这是一个文档的示例:

{
   "_id": {
      "$oid": "53b309def468718462e0c390"
   },
   "customer": {
      "companyName": "Vins et alcools Chevalier",
      "contactName": "Paul Henriot",
   },
   "employee": {
      "employeeId": 5,
      "firstName": "Steven",
      "lastName": "Buchanan"
   },
   "orderItems": [
      {
         "productName": "Queso Cabrales",
         "unitPrice": 14,
         "quantity": 12
      },
      {
         "productName": "Singaporean Hokkien Fried Mee",
         "unitPrice": 9.8,
         "quantity": 10
      }
   ],
   "orderId": 10248,
   "orderDate": {
      "$date": "1996-07-04T07:00:00.000Z"
   },
   "requiredDate": {
      "$date": "1996-08-01T07:00:00.000Z"
   },
   "shippedDate": {
      "$date": "1996-07-16T07:00:00.000Z"
   },
   "shipVia": "Federal Shipping",
   "freightCost": 32.38
}

这是我的代码和 output:

MongoCursor<Document> cursor;
MongoCollection<Document> collection = database.getCollection("test");
cursor = collection.find().iterator();
try {
    while (cursor.hasNext()) {
         //System.out.println(cursor.next().toJson());
         System.out.println(cursor.next().get("key"));
    }       
} finally {
    cursor.close();
}

这是输出:

null null null null null ...

我只想要名称部分,但它不起作用。

我正在使用 java 驱动程序 3.12.4 和 mongodb v4.2

保护你。

尝试这个:

private void printFields(){
    MongoCursor<Document> cursor;
    MongoCollection<Document> collection = database.getCollection("user");
    cursor = collection.find().iterator();
    try {
        while (cursor.hasNext()) {
            //System.out.println(cursor.next().toJson());

            for (Map.Entry<String, Object> entry : cursor.next().entrySet())
            {
                System.out.println(entry.getKey() + "/" + entry.getValue());
            }
        }
    } finally {
        cursor.close();
    }
}

暂无
暂无

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

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