2017-03-16 65 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

相关问题