2017-03-16 22 views
0

我有一個僱員信息即時消息棧中使用的模型,並且想要引用他們將在商店模型中工作的商店名稱,以下內容是正確的嗎?如何在ExpressJ中引用另一個模型值?

員工:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var muv = require('mongoose-unique-validator'); 

var schema = new Schema({ 
    firstName: {type: String, required: true}, 
    lastName: {type: String, required: true}, 
    empId: {type: String, required: true, unique: true}, 
    num: {type: String, required: true}, 
    job: {type: String, required: true}, 
    store: {type: Schema.Types.storeName, ref: 'Stores'}, 
}); 

schema.plugin(muv); 

module.exports = mongoose.model('Message', schema); 

商店:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var schema = new Schema({ 
    storeName: {type: String, required: true}, 
    lat: {type: String, required: true}, 
    long: {type: String, required: true}, 
}); 

module.exports = mongoose.model('Stores', schema); 

回答

0

你靠近!您想引用商店的ID,而不是名稱。當Mongoose執行「加入」時,它將在store配置文件字段中看到ObjectID存儲,並將其與Stores集合中的ObjectID相匹配。

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var muv = require('mongoose-unique-validator'); 

var schema = new Schema({ 
    firstName: {type: String, required: true}, 
    lastName: {type: String, required: true}, 
    empId: {type: String, required: true, unique: true}, 
    num: {type: String, required: true}, 
    job: {type: String, required: true}, 
    store: {type: type: Schema.ObjectId, ref: 'Stores'}, //Reference store ObjectId. 
}); 

schema.plugin(muv); 

module.exports = mongoose.model('Message', schema); 
+0

存在拼寫錯誤類型:類型:在商店旁邊輸入兩次。 – user7629970

相關問題