Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向mongodb查找结果所在的数组添加键和值(添加的键/值丢失)_Javascript_Arrays_Key Value - Fatal编程技术网

Javascript 如何向mongodb查找结果所在的数组添加键和值(添加的键/值丢失)

Javascript 如何向mongodb查找结果所在的数组添加键和值(添加的键/值丢失),javascript,arrays,key-value,Javascript,Arrays,Key Value,这一定是一个标准的Javascript问题,但我在这里的搜索没有找到任何适用于我的结果 我正在查询mongodb数据库,希望通过enrichJSON函数向结果数组中的对象添加键/值 MongoBooks.find以数组形式返回一些文档。也许enrichJSON是个坏名字,它应该是类似EnrichCharray的东西,不管怎样,它是任意的 function enrichJSON(jsonobj) { for (var i = 0; i < jsonobj.length; i++) {

这一定是一个标准的Javascript问题,但我在这里的搜索没有找到任何适用于我的结果

我正在查询mongodb数据库,希望通过enrichJSON函数向结果数组中的对象添加键/值

MongoBooks.find以数组形式返回一些文档。也许enrichJSON是个坏名字,它应该是类似EnrichCharray的东西,不管怎样,它是任意的

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);
  });
在enrichJSON中

我越来越

step1: {[{"title":"good book"}]}
step2: {[{"title":"good book"}]}
但是我想

step2: {[{"title":"good book", "myparam":"something meaningful"}]}
编辑以给出我的结果的实际(精简)示例(我编辑以使其更简单,但可能混淆了括号):


我仍然缺少我添加的内容(myparam)。

您的响应不正确

{[{"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;
}
然后,您的enrich函数将如下所示:

{'data' : [{"title":"good book"}]}
function enrichJSON(jsonobj) {
    for (var i = 0; i < jsonobj.data.length; i++) {
        jsonobj.data[i].myparam = "something meaningful";
    }
    return jsonobj;
}
函数enrichJSON(jsonobj){
对于(var i=0;i
{[{“title”:“good book”}]}
不是有效的JS或JSON对象。没有映射到该数组的属性。由于该对象实际上有更多属性,所以我创建了该数组。实际上,在我的例子中,我发送了一个查询,它只响应一个对象。我将编辑原始的文章,以提供适当的格式的例子。对不起,给破碎的例子。编辑/更新的示例应给出正确的格式。在多个图书结果的情况下(正常情况下),输出只是几个对象,用逗号分隔,比如{u id:'1',title:'abc'},{id:'2',title:'def'},{u id:'3',title:'abc2'}好的,它是子对象上的一个属性。。它应该是jsonobj[i]。_doc.myparam=“abctest”;然后它也出现在结果中我们的新示例没有显示数组,因此它不会使用for循环在对象上循环,因为该对象没有“length”属性。我也感到困惑-对于find()方法,我总是期望数组,这也是为什么我首先错误地创建了示例(它们不是真实的输出)。无论如何,既然你的回答帮助我找到了解决办法,我会接受的。(我只需要添加_doc-见上文)仍在研究javascript及其特性。。