Node.js 在mongoose中填充返回_id的数组
我正在通过MERN stack为goodreads创建模拟 当我使用populate检索特定用户的书籍时,它返回空数组,我做了很多搜索,但都是徒劳的 这是我的模型Node.js 在mongoose中填充返回_id的数组,node.js,mongodb,mongoose,mongoose-populate,Node.js,Mongodb,Mongoose,Mongoose Populate,我正在通过MERN stack为goodreads创建模拟 当我使用populate检索特定用户的书籍时,它返回空数组,我做了很多搜索,但都是徒劳的 这是我的模型 const userSchema =new mongoose.Schema({ firstName:{ type:"string",required:true }, books:[{ book:{type:mongoose.Schema.Types.ObjectId,ref:'Book'},rate:Number,sh
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.book").exec(function (err, user) {
res.json(user)
});
})
这就是JSON的结果
[{"_id":"5c70f299ef088c13a3ff3a2c","books":
[{"_id":"5c708c0077a0e703b15310b9"},{"_id":"5c708c0077a0e703b15310ba"},
{"_id":"5c708c0077a0e703b15310bb"},{"_id":"5c708c0077a0e703b15310bd"}]}]
我认为这是一个如何定义
UserSchema
的问题。我的假设是,将比率
和书架
包含在书籍
的定义中是问题的根源
尝试删除这些字段以开始,然后只填充
books
,而不是books.book
。如果这行得通的话,我真的会重新考虑把这些字段放在你有它们的地方。在我个人看来,我认为它们在BookSchema
中似乎更好,因为UserSchema
中的每一本书都有比率和书架。希望这有帮助 我认为这是如何定义用户模式的问题。我的假设是,将比率
和书架
包含在书籍
的定义中是问题的根源
尝试删除这些字段以开始,然后只填充books
,而不是books.book
。如果这行得通的话,我真的会重新考虑把这些字段放在你有它们的地方。在我个人看来,我认为它们在BookSchema
中似乎更好,因为UserSchema
中的每一本书都有比率和书架。希望这有帮助 我试过了,但什么也没发生,当我只使用书本时,返回一个空数组。我试过了,但什么也没发生,当我只使用书本时,返回一个空数组