简体   繁体   English

在流星集合文档中插入值

[英]inserting value in meteor collection document

This code is trying to insert some value in a document when the method storeUserinputs is called, but I get error 当调用方法storeUserinputs时,此代码尝试在文档中插入一些值,但是我收到错误

Error invoking Method 'storeUserInputs': Internal server error [500] 调用方法'storeUserInputs'时出错:内部服务器错误[500]

I went through it many times but could not find a problem. 我经历过很多次但是找不到问题。 What am I doing wrong? 我究竟做错了什么? Thanks. 谢谢。

storeUserInputs: function (doc) {
    var activeTask = ActiveTaskCol.findOne({}, {fields: {action: 1}, sort: {createdAt: -1}, limit: 1}).action;
    console.log(doc);
    doc.forEach(function (obj) {
        console.log(obj);
        InputsCol.update({action: activeTask, name: obj[name]}, {$set: {value: obj[value]}});
   });
}

The above code console logged the following before throwing error 上面的代码控制台在抛出错误之前记录了以下内容

[ { name: 'plate', value: 'x large' } ] [{name:'plate',value:'x large'}]
{ name: 'plate', value: 'x large' } {name:'plate',value:'x large'}

The problem is with way in which obj 's fields are accessed. 问题在于访问obj的字段。 It should be either obj["name"] or obj.name but not obj[name] . 它应该是obj["name"]obj.name而不是obj[name]

Try this, 尝试这个,

storeUserInputs: function (doc) {
    var activeTask = ActiveTaskCol.findOne({}, {fields: {action: 1}, sort: {createdAt: -1}, limit: 1}).action;
    console.log(doc);
    doc.forEach(function (obj) {
        console.log(obj);
        InputsCol.update({action: activeTask, name: obj.name}, {$set: { value: obj.value }});
        // or InputsCol.update({action: activeTask, name: obj["name"]}, {$set: { value: obj["value"] }});
    })
}

The error is because, you are using name and value variables which are not defined in the function. 该错误是因为您正在使用未在函数中定义的namevalue变量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM