node怎么在地址栏显示id_如何在nodejs中使用objectId

I write 2 models in mongoose. first for Users another for Movies. I wrote this models below. first I save my all user in users collection. after that I want to save my movies to movies collection. but when I want to define my director field I get an error that "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}

and this is my function:

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)

解决方案

Move the await findObjectIdByImdbId(obj.director) out of Movie initialization

E.g.

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

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值