这必须是标准的Javascript问题,但我的搜索结果并没有显示任何适用于我的结果。
我正在查询mongodb数据库,并希望通过enrichJSON函数将键/值添加到结果数组中的对象。
MongoBooks.find返回Array文档中的一些文档。可能richJSON是一个坏名字,它应该像enrichArray,它无论如何都是任意的。
function enrichJSON(jsonobj) {
for (var i = 0; i < jsonobj.length; i++) {
jsonobj[i].myparam = "something meaningful";
}
return jsonobj;
}
MongoBooks.find(mongoquery, function (err, docs) {
if (err) throw err;
var step1 = docs;
var step2 = enrichJSON(step1);
console.log("step1:" + step1);
console.log("step2:" + step2);
});
step2控制台输出缺少myparam输出。如果我尝试
,也一样jsonobj[i]["myparam"] = "abctest";
我正在
step1: {[{"title":"good book"}]}
step2: {[{"title":"good book"}]}
但想得到
step2: {[{"title":"good book", "myparam":"something meaningful"}]}
编辑以给出我的结果的实际(剥离)示例(我编辑使其更简单,但可能会混淆括号):
step2:{ _id: 5474e8a35e79556ced436700,
isbn10: '0370303466',
author: 'Graham Greene',
lang: 'eng',
title: 'Travels with my aunt'
}
我仍然想念我添加的内容(myparam)。
答案 0 :(得分:2)
你的回复都很糟糕。
{[{"title":"good book"}]}
应该是这样的:
{'data' : [{"title":"good book"}]}
然后你的充实功能看起来像这样:
function enrichJSON(jsonobj) {
for (var i = 0; i < jsonobj.data.length; i++) {
jsonobj.data[i].myparam = "something meaningful";
}
return jsonobj;
}