以從這裏如何使用Mongoose填充來存儲ObjectId以外的數據?
http://mongoosejs.com/docs/populate.html
的例子。如果我試圖調整它讓 '粉絲' 還包含一個等級
var db = require('houselib/db');
var Schema = db.Schema;
var mongoose = db.mongoose;
var PersonSchema = new Schema({
name : String
, age : Number
, stories : [{ type: Schema.ObjectId, ref: 'Story' }]
});
var StorySchema = new Schema({
_creator : { type: Schema.ObjectId, ref: 'Person' }
, title : String
, fans : [{ type: Schema.ObjectId, ref: 'Person', rating: Number}]
});
var Story = mongoose.model('Story', StorySchema);
var Person = mongoose.model('Person', PersonSchema);
var aaron = new Person({ name: 'Aaron', age: 100 });
aaron.save(function (err) {
if (err) throw err;
var story1 = new Story({
title: "A man who cooked Nintendo"
, _creator: aaron._id
, fans: [{type: aaron._id, rating: 4}]
});
story1.save(function (err) {
if (err) throw err;
Story
.find({ _creator: aaron._id })
.populate('_creator') // <-- not really necessary
.run(function (err, stories) {
if (err) throw err;
console.log('The stories JSON is an array: ', stories);
})
});
})
我收到以下錯誤
CastError: Cast to undefined failed for value "[object Object]"
查看接受的答案http://stackoverflow.com/questions/10148308/dbref-with-mongoose-mongoose-dbref-or-populate。 Mongoose populate不使用DBRef。 – TaylorMac
**雖然在這種情況下需要手動鏈接IS。 – TaylorMac