Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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 如何消除引用节点js mongodb时遇到的空错误_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 如何消除引用节点js mongodb时遇到的空错误

Javascript 如何消除引用节点js mongodb时遇到的空错误,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我必须使用填充方法来引用我的第二个集合。我有两个系列,一个是关卡,第二个是儿童版。 我已通过子集合引用了我的级别集合。为此,我使用填充的方法,但它返回null 这是NodeJS代码 function(){ var query = {'_id': result._id }; var params = 'usercurrLevelId'; childQuizInfo.findOne(query, params).populate

我必须使用填充方法来引用我的第二个集合。我有两个系列,一个是关卡,第二个是儿童版。 我已通过子集合引用了我的级别集合。为此,我使用填充的方法,但它返回null

这是NodeJS代码

function(){
            var query = {'_id': result._id };
            var params = 'usercurrLevelId';
            childQuizInfo.findOne(query, params).populate({
              path : 'usercurrLevelId',
              model : 'Level',
              select : '_id level_num age'
            }).exec(function(err,levelinfo){
              if(err) return next(err);
              res.send(levelinfo);
            });
          }
此级别架构

var LevelSchema = new Schema({

            _id: { type: String },
            age: { type: Number },
            level_num: { type: Number },
            min_score: { type: Number },
            max_questions: { type: Number }

  });

var Level = mongoose.model('Level', LevelSchema);
这是子模式

usercurrLevelId: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Level',
        index: true
    }
这是存储在mongoDB中的级别

{
"_id" : ObjectId("57cb1ef8b0b05a2ce9b0c24b"),
"age" : 5,
"level_num" : 1,
"min_score" : 12,
"max_questions" : 30
}
{
"_id" : ObjectId("57cb1ef9b0b05a2ce9b0c24c"),
"age" : 5,
"level_num" : 2,
"min_score" : 15,
"max_questions" : 33
}
{
"_id" : ObjectId("57cc0410d51045452644251b"),
"usercurrLevelId" : ObjectId("57cb1ef8b0b05a2ce9b0c24b")
}
这是存储在mongoDB中的子级

{
"_id" : ObjectId("57cb1ef8b0b05a2ce9b0c24b"),
"age" : 5,
"level_num" : 1,
"min_score" : 12,
"max_questions" : 30
}
{
"_id" : ObjectId("57cb1ef9b0b05a2ce9b0c24c"),
"age" : 5,
"level_num" : 2,
"min_score" : 15,
"max_questions" : 33
}
{
"_id" : ObjectId("57cc0410d51045452644251b"),
"usercurrLevelId" : ObjectId("57cb1ef8b0b05a2ce9b0c24b")
}
以及我得到的输出

{
 "_id": "57cc0410d51045452644251b",
 "usercurrLevelId": null,
 "__v": 0
}

我使用此节点js查询,以便使用此引用从我的级别架构中获取级别编号和_id。

如果删除
选择
,会发生什么情况?它不会给出相同的错误Null,但它可以工作我从我的级别架构中删除了_id