заполнить в мангуста возвращает пустой массив, я застрял - PullRequest
0 голосов
/ 23 февраля 2019

Я создаю симуляцию для хороших книг по стеку MERN, и когда я использую метод заполнения для извлечения книг определенного пользователя, он возвращает пустой массив, я провел большой поиск, но напрасно вот моя модель

const userSchema =new mongoose.Schema({
firstName:{
    type:"string",required:true
},
books:[{
    book:{type:mongoose.Schema.Types.ObjectId,ref:'Book'},rate:Number,shelve:''
}]});

и это модель книг

const bookSchema =new mongoose.Schema({
title :{
    type:"string",required:true
}});

, и вот как я использую populate

router.get("/one", (req, res, next) => {
User.find({firstName : "John"}).populate("books").exec(function (err, user) { 
    res.json(user)
 });
})

, и вот результат json

[{"_id":"5c70f299ef088c13a3ff3a2c","books":[]}]

1 Ответ

0 голосов
/ 23 февраля 2019

вы ссылаетесь на объект book внутри массива книг, поэтому вам нужно заполнить books.book.

User.find({firstName : "John"}).populate("books.book").exec(function (err, user) { 
   res.json(user)
 });
...