Прежде всего, это файлы:
MySchema File, который также имеет две ссылочные переменные
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Creating Schema
const userShelfSchema = new Schema({
user:{
type: mongoose.Schema.Types.ObjectId,
ref: 'userModel'
},
bookShelf:[{
bookId:{
type: mongoose.Schema.Types.ObjectId,
ref: 'bookDetailsModel'
},
status:{
type: String
},
rating:{
type: Number
},
review:{
type: String
},
date:{
type: Date,
default: Date.now
}
}]
})
module.exports = userShelfModel = mongoose.model('userShelfModel', userShelfSchema);
Итак, я хочу найти всех пользователей, у которых есть спецификация c book в их массиве bookShelf, поэтому в моей bookdetails есть следующий код. js:
router.get('/reviews/:bookid', (req, res) =>{
userShelf.find({bookShelf:{bookId:req.params.bookid}})
.populate('user',['name'])
.then(reviews=>{
return res.json({reviews});
})
.catch(err=>res.status(400).json({error:"server error"}));
});
Я не получаю здесь ошибок, но я продолжаю получать нулевой массив, я посмотрел на Mon go docs, но ничего не нашел, также я попытался передать params.bookid как mongoose.Types.ObjectId()
, но он также возвращает нулевое значение. что мне следует изменить в моем коде? помогите пожалуйста.