如何在nodejs中使用objectId [英] how to use of objectId in nodejs
本文介绍了如何在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屋!
查看全文