【问题标题】:how to use of objectId in nodejs如何在nodejs中使用objectId
【发布时间】:2018-11-05 16:00:29
【问题描述】:

我用猫鼬写了 2 个模型。首先是用户,另一个是电影。我在下面写了这个模型。首先,我将所有用户保存在用户集合中。之后,我想将我的电影保存到电影收藏中。但是当我想定义我的 director 字段时,我收到一个错误“ReferenceError:director is not defined”

const userSchema = new Schema({
imdbId: String,
name: String,

});
var User = mongoose.model('user', userSchema);

const movieSchema = new Schema({
imdbId: String,
title: String,
rank: Number,
year: Number,
stars:[{
    type: Schema.Types.ObjectId,
    ref: 'userSchema'

}],
director:{
    type: Schema.Types.ObjectId,
    ref: 'userSchema'

}
});
var Movie = mongoose.model('movie', movieSchema);

module.exports = {Movie, User}

这是我的功能:

 async function findObjectIdByImdbId(str) {
const result = await User.findOne({ imdbId: str})
return result._id

}


 async function insertMovieToDb (obj) {


var movie = new Movie ({
    imdbId: obj.id,
    title: obj.name,
    rank: obj.rank,
    rating: obj.rating,
    year: obj.year,
    director: await findObjectIdByImdbId(obj.director)
})

await movie.save(function(err) {
    if (err) {console.log(err)
        return
    }})
  }
  insertJsonFileToDb().catch(console.log)

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    await findObjectIdByImdbId(obj.director) 移出电影初始化

    例如

    var directorObjId = await findObjectIdByImdbId(obj.director);
    var movie = new Movie ({
        imdbId: obj.id,
        title: obj.name,
        rank: obj.rank,
        rating: obj.rating,
        year: obj.year,
        director: directorObjId
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 2020-02-16
      • 2016-01-28
      相关资源
      最近更新 更多