如何将键和值添加到mongodb查找结果的数组(添加键/值丢失)

时间:2014-11-25 22:55:30

标签: javascript arrays key-value

这必须是标准的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";
在enrichJSON中。

我正在

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)。

1 个答案:

答案 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;
}
相关问题