как использовать objectId в nodejs - PullRequest
0 голосов
/ 05 ноября 2018

Я пишу 2 модели в мангусте. сначала для пользователей, другое для фильмов. Я написал эту модель ниже. сначала я сохраняю всех пользователей в коллекции пользователей. после этого я хочу сохранить свои фильмы в коллекцию фильмов. но когда я хочу определить свое поле директора, я получаю сообщение об ошибке «ReferenceError: Director не определено»

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)

1 Ответ

0 голосов
/ 05 ноября 2018

Переместить 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
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...