2
我在MongoDB中有一個有效的JSON結構,需要在運行時進行更改。這裏是3個這樣的單獨的文件中的單個集合的有效快照: -MongoDB - JSON解析
{
company : "ABC",
tags : ["ADMIN", "QA"],
year : 2010,
Project : [{
Domain : "Telecom",
tags : ["DEV", "ADMIN"],
size : 15
}, {
Domain : "Retail",
tags : ["ADMIN", "DEV"],
size : 35
}, {
Domain : "Finance",
tags : ["ADMIN"],
size : 25
}
]
}
{
company : "ABC",
tags : ["QA"],
year : 2011,
Project : [{
Domain : "Telecom",
tags : ["DEV"],
size : 15
}, {
Domain : "Retail",
tags : ["ADMIN", "DEV"],
size : 35
}, {
Domain : "Finance",
tags : ["ADMIN"],
size : 25
}
]
}
{
company : "ABC",
tags : ["QA"],
year : 2012,
Project : [{
Domain : "Telecom",
tags : ["DEV", "ADMIN"],
size : 15
}, {
Domain : "Retail",
tags : ["ADMIN", "DEV"],
size : 35
}, {
Domain : "Finance",
tags : ["ADMIN"],
size : 25
}
]
}
的結構需要這些3個文件合併成1,然後以下列方式顯示: -
{
"company" : "ABC",
"tags" : ["ADMIN", "QA"],
"period" : {
[{
year : 2010,
Project : [{
Domain : "Telecom",
tags : ["DEV", "ADMIN"],
size : 15
}, {
Domain : "Retail",
tags : ["ADMIN", "DEV"],
size : 35
}, {
Domain : "Finance",
tags : ["ADMIN"],
size : 25
}
]
}
],
[{
year : 2011,
Project : [{
Domain : "Telecom",
tags : ["DEV"],
size : 15
}, {
Domain : "Retail",
tags : ["ADMIN", "DEV"],
size : 35
}, {
Domain : "Finance",
tags : ["ADMIN"],
size : 25
}
]
}
],
[{
year : 2012,
Project : [{
Domain : "Telecom",
tags : ["DEV", "ADMIN"],
size : 15
}, {
Domain : "Retail",
tags : ["ADMIN", "DEV"],
size : 35
}, {
Domain : "Finance",
tags : ["ADMIN"],
size : 25
}
]
}
]
}
}
我知道我可以使用地圖縮減並完成此操作。但我認爲我應該嘗試爲此編寫一個Java腳本函數,然後在需要完成時調用它。
假設可以使用集合調用以下函數,一個記錄集將被傳遞給下面的函數。
`var curlprojects = function()
{
var arrSyn = new Array();
var JSONString = "";
var doc;
var parent;
var arrTop = new Array();
while (myCursor.hasNext())
{
doc = myCursor.next();
parent = doc.companyName;
var fulltext = "{\"year\":" + tojson(doc.year) + ",\"project\":" + tojson(doc.project) + "}";
JSONString = JSONString + fulltext;
};
arrSyn.push(JSONString);
var outext = "{\"period\":" + JSONString + "}";
print(outext);
} `
這是問題所在。儘管文本看起來像JSON,比如當我生成它或打印出來時,它不會打印到屏幕上。
最後一行print(outext)顯示一些奇怪的消息,詢問我是否希望顯示181個偏好設置,如果我說是 - 它會列出java腳本中的所有保留字!
任何建議,將不勝感激。