猫鼬填充返回空数组
Posted
技术标签:
【中文标题】猫鼬填充返回空数组【英文标题】:mongoose populate returns null array 【发布时间】:2016-04-28 12:14:54 【问题描述】:猫鼬与人口的关系并不好。这是我的模特
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
mongoose.connect(process.env.MONGO_URI);
var userSchema = new Schema(
username: String,
password: String,
books: [type: Schema.Types.ObjectId, ref: 'User']
);
var bookSchema = new Schema(
bookid: type:String, unique:true, required:true,
imgURL: String
);
module.exports.user = mongoose.model('User', userSchema);
module.exports.book = mongoose.model('Book', bookSchema);
数据库看起来正确。
"_id" : ObjectId("56a17cd70a498fcc37cdbe60"), "username" : "test", "password" : "test", "books" : [ ObjectId("56a17d21d43dc32a3a9837de"), ObjectId("56a17ee5d43dc32a3a9837e4"), ObjectId("56a17f5dd43dc32a3a9837e6"), ObjectId("56a17f9fd43dc32a3a9837e8") ], "__v" : 4
但是当我进行填充时,我得到一个空的“书籍”数组
users.findOne('_id':userid).populate('books').exec(function(err,data)
if (err) return console.error(err);
if(data)
);
一切都在那里,它根本不会填充。任何建议将不胜感激。
【问题讨论】:
【参考方案1】:userSchema
中的 ref
似乎不正确,它应该引用 book
架构而不是 user
架构本身。
var book = mongoose.model('Book', bookSchema);
...
books: [type: Schema.Types.ObjectId, ref: 'book']
【讨论】:
以上是关于猫鼬填充返回空数组的主要内容,如果未能解决你的问题,请参考以下文章