2017-03-16 5 views
0

Ich habe ein Modell für Mitarbeiterinformationen im Einsatz in einem MEAN-Stack und möchte den Store-Namen verweisen, die sie in einem Stores-Modell arbeiten, wäre das folgende korrekt?Wie referenziere ich einen anderen Modellwert in ExpressJs?

Mitarbeiter:

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); 

Shops:

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); 

Antwort

0

Sie sind in Ihrer Nähe! Sie möchten auf die ID des Geschäfts verweisen, nicht auf den Namen. Wenn Mongoose das 'Join' ausführt, wird der ObjectID-Speicher im Profilfeld store angezeigt und mit einer ObjectID in der Stores-Auflistung abgeglichen.

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

Es gibt einen Tippfehler-Typ: Typ: wird neben dem Speicher zweimal eingegeben. – user7629970

Verwandte Themen