Ich habe zwei Schemas, eine Team
und eine Match
. Ich möchte die Team Schema
verwenden, um die Teams in der Match Schema
zu identifizieren. Bis jetzt, hier sind meine Team und Match JS Dateien. Ich möchte das Team-Schema mit meinem Match-Schema verknüpfen, um das Heim- oder Auswärts-Team einfach identifizieren zu können und damit im Match-Schema ein Team-Objekt zu speichern.Verknüpfen von 2 Mongoeschemata
So kann ich an die Heimmannschaft zum Beispiel als Match.Teams.home.name = England
beziehen kann (dies ist nur ein Beispiel natürlich)
Team.js
'use strict';
var util = require('util');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var validatePresenceOf = function(value){
return value && value.length;
};
var getId = function(){
return new Date().getTime();
};
/**
* The Team schema. we will use timestamp as the unique key for each team
*/
var Team = new Schema({
'key' : {
unique : true,
type : Number,
default: getId
},
'name' : { type : String,
validate : [validatePresenceOf, 'Team name is required'],
index : { unique : true }
}
});
module.exports = mongoose.model('Team', Team);
Und hier ist, was ich versuche zu tun Match.js
'use strict';
var util = require('util');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var TeamSchema = require('mongoose').model('Team');
var validatePresenceOf = function(value){
return value && value.length;
};
var toLower = function(string){
return string.toLowerCase();
};
var getId = function(){
return new Date().getTime();
};
/**
* The Match schema. Use timestamp as the unique key for each Match
*/
var Match = new Schema({
'key' : {
unique : true,
type : Number,
default: getId
},
'hometeam' : TeamSchema,
'awayteam' : TeamSchema
});
module.exports = mongoose.model('Match', Match);
Ich habe die Team-Exporte geändert, wie Sie gesagt haben. In der Datei Match.js habe ich jetzt 'var definition = require ('Team.js');' und ich speichere 'hometeam' als' definition.schema', aber ich bekomme den Fehler, dass 'team.js' nicht gefunden werden kann , irgendeine Idee? – germainelol
Ich habe auch versucht, nur Team nicht Team.js – germainelol
Sorry, um erneut zu kommentieren, aber ich habe dies behoben, indem Sie den vollständigen Pfad und jetzt 'TypeError: Undefined Typ bei' hometeam' und fragen mich, ob ich Verschachtelung Schemas – germainelol