如何在nodejs中使用objectId [英] how to use of objectId in nodejs

查看:546
本文介绍了如何在nodejs中使用objectId的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用猫鼬写了2个模型.首先是用户,另一个是电影.我在下面写了这个模型.首先,我将所有用户保存在用户集合中.之后,我要将电影保存到电影收藏中.但是当我要定义我的导演字段时,出现错误"ReferenceError:未定义导演"

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}

这是我的功能:

 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)

推荐答案

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

这篇关于如何在nodejs中使用objectId的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆