我試圖訪問一個商店地址的屬性,但我一直在'未定義'。原來,地址只是一個ID,即使我在地址的模式中聲明瞭'ref'。我在這裏做錯了什麼?當我試圖引用另一個模式的對象時,爲什麼不讓mongoose ref爲我工作?
從initStores輸出
{ name: 'Wegmans',
address: 53b998d9fcf740e07a4d03f7,
_id: 53b998d9fcf740e07a4d03f8,
items: [] }
53b998d9fcf740e07a4d03f7
undefined
路由器/ index.js
router.post('/initStores', function(req, res) {
var address = new Address({
street: '650 Hylan Dr',
city: 'Rochester',
state: 'NY',
zipcode: '14623',
telephone: '123-456-7890'
});
// address.save();
var store = new Store({
name: 'Wegmans',
address: address
});
console.log(store);
console.log(store.address);
console.log(store.address.street);
// store.save();
}
模型/ address.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var AddressSchema = new Schema({
type: { type: String, default: 'Store' }, // Store, apartment, house, headquarter
street: { type: String, require: true },
city: { type: String, require: true },
state: { type: String, require: true },
zipcode: { type: String, require: true },
country: { type: String, default: 'United States' },
telephone: { type: String, default: '555-555-5555' }
});
mongoose.model('Address', AddressSchema);
模型/ store.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var StoreSchema = new Schema({
name: { type: String, require: true },
address: { type: ObjectId, ref: 'Address' },
items: [ { type: ObjectId, ref: 'Item' } ]
});
mongoose.model('Store', StoreSchema);
最初我想將地址存儲在不同的集合中,但現在我沒有看到您指出它只能使用Store的地址屬性的對象,並且該地址不會被無論如何,除了那家特定的商店以外的其他東西並感謝您告訴我有關填充方法!我不知道你是如何訪問其他模式屬性的。 – Vongdarakia