NodeJS + Mongoose:人口不起作用

我想添加到Blog对象的几个Categories对象,并在这之后获得访问博客的第一类。

 var ObjectId = mongoose.Schema.Types.ObjectId; var categorySchema = mongoose.Schema({ title: String, blogs: [{ type: ObjectId, ref: 'Blog' }] }) var blogSchema = mongoose.Schema({ title: String, description: String, category: [{ type: ObjectId, ref: 'Category' }], created: {type: Number, default: new Date().getTime()} }) var Category = mongoose.model('Category', categorySchema) var Blog = mongoose.model('Blog', blogSchema) exports.addBlog = function (object, callback) { Blog({ title: object.title, description: object.description, category: object.category //array of sting ObjectID's - ['',''] – from multiselect box }).save(function (err, _) { Blog .find({title: _.title}) .populate('category') .exec(function (err, __) { if (err) return handleError(err); console.log('Category is ', __.category[0].title); }) callback(err, _); }); } 

结果我得到:

 TypeError: Cannot read property '0' of undefined 

似乎Mongoose在上次callback(__)中找不到对象,但是我检查了 – _.title是有效的。 如何填充它? 谢谢。

问题是Blog.find()返回一个数组,我应该使用__[0].category[0].titlefindOne()查找。