Javascript 如何消除引用节点js mongodb时遇到的空错误
我必须使用填充方法来引用我的第二个集合。我有两个系列,一个是关卡,第二个是儿童版。 我已通过子集合引用了我的级别集合。为此,我使用填充的方法,但它返回null 这是NodeJS代码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
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