2014-12-05 125 views
1

如何将mongodb文档列表转换为表格形式?如何将mongodb文档列表转换为表格形式?

例子:

我BsonDocuments

[0] = { "_id" : ObjectId("546ce80d43f5c2b7d8a713bd"), "Address" : "61- A, Pocket- C, Ram Vihar Phase II, UP", "Pincode" : 110091, "Locality" : "Mayur Vihar Phase II", "City" : "Delhi", "Latitude" : 28.618156, "Longitude" : 76.3055877 } 

[1] = { "_id" : ObjectId("546ce80d43f5c2b7d8a713bd"), "Address" : "61- A, Pocket- C, Phase II, Rahi", "Pincode" : 110091, "Locality" : "Mayur Vihar Phase II", "City" : "Delhi", "Latitude" : 28.618156, "Longitude" : 77.305877 } 

[2] = { "_id" : ObjectId("546ce80d43f5c2b7d8a713bd"), "Address" : "6 B2C - C, Krish Marg II, Delhi", "Pincode" : 110092, "Locality" : "Mayur Vihar Phase II", "City" : "Delhi", "Latitude" : 28.618156, "Longitude" : 76.305877 } 

我想转换此列表表格像JSON像

Address:{'61- A, Pocket- C, Ram Vihar Phase II, UP',' '61- A, Pocket- C, Phase II, Rahi ','6 B2C - C, Krish Marg II, Delhi'} , 
Pincode:{'110091','110091','110092'}, 
... 

同样,对于各个领域的以下列表。

所以我的问题是: 是否有任何库或我需要为此编写代码?

回答

1

你需要编写代码聚集,这可能看起来像:

  • Group通过_id等于null,让所有的记录都 同一组下。
  • 使用$push运算符可以形成一个Address,Pincode,.. 元素的数组。
  • Project必填字段忽略_id字段。

代码:

db.collection.aggregate([ 
{$group:{"_id":null,"Address":{$push:"$Address"},"Pincode":{$push:"$Pincode"}}}, 
{$project:{"_id":0,"Address":1,"Pincode":1}} 
]) 

您可以包括其他领域,如Locality,...为好。

如果你想这样做在客户端:

var result = {}; 
db.collection.find().forEach(function(doc){ 
var keys = Object.keys(doc); 
for(var i=0;i<keys.length;i++) 
{ 
     if(!result[keys[i]]) result[keys[i]] = []; 
     result[keys[i]].push(doc[keys[i]]); 
} 
}) 
console.log(result); 
+0

感谢您的解决方案,但我有动态字段(字段名称不能确定) – Deepak 2014-12-05 08:35:30

+0

@ deepak.mhr看到我更新的答案,以显示它如何在后处理期间完成。 – BatScream 2014-12-05 08:53:57

+0

感谢您的更新解决方案,现在它的工作 – Deepak 2014-12-08 05:25:06