我们如何使用节点js和mongodb中的populate方法找到特定的键值

时间:2016-09-03 17:29:32

标签: node.js mongodb

我在MONGODB中有两个带有值的Schema。一个是级别模式,第二个是子模式。我正在为特定键值引用级别模式。我使用mongoose.Schema.Types.ObjectID {ref:level}将level 1 id存储到子模式DB。我存储水平适当 使用引用在子模式中使用1个id。但是当我填充1级id查询到我的子模式时,它会显示我的1级id null

1)。这是我的架构

usercurrLevelId: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Level',
        index: true
    }

2)。这是第二个架构

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

3)。这是节点js代码

  function(){
            var query = {'_id':firstinfo._id};
            var select = 'usercurrLevelId';
            childQuizInfo.find(query,select).populate({
              path: 'usercurrLevelId',
              model: 'Level',
              select: 'level_num'
            }).exec(function(err,levelno){
              if (err) return next(err);
              res.send(levelno);
              console.log(levelno);
            });
          }

4)。 MONGODB中的存储值

"_id" : ObjectId("57cb01e10797d129136f7997"),
"usercurrLevelId" : ObjectId("57c14943b78cd543fc59b7ee")

5)。我在控制台中得到的输出

[ { _id: 57cb01e10797d129136f7997, usercurrLevelId: null } ]

0 个答案:

没有答案