1

私のコンペティション スキーマでは、チームのリストを追加する必要があります。TeamSchema を定義し、コレクションにいくつかのチームを追加しました。ここで、大会を追加し、その大会にチームのリストを追加したいと考えています。

これは私の競争スキーマがどのように見えるかです

Competitions = new Mongo.Collection("competitions");

var CompetitionsSchema = new SimpleSchema({
year: {
    type: String
},
division: {
    type : String,
    allowedValues: ['Elite', '1st','2nd','3rd','4th','Intro']
},
teams:{
    type : [TeamSchema],
    allowedValues: (function () {
        console.log(1); // this is logged
        return Teams.find().fetch().map(function (doc) {
            console.log(doc.name); // this is not even logged
            return doc.name;
        });
    }()) //here we wrap the function as expression and invoke it
}

}); コンペティション.attachSchema(コンペティションスキーマ);

今、このようなオートフォームを使用して挿入しようとすると

{{> quickForm collection="Competitions" id="insertTeamForm" type="insert"}}

選択するチームのリストを取得できません。ここで何か間違ったことをしていますか?

チーム スキーマ

Teams = new Mongo.Collection("teams");

TeamSchema = new SimpleSchema({
name: {
    type: String
},
matches: {
    type: Number,
    defaultValue: 0
},
matchesWon: {
    type: Number,
    defaultValue: 0
},
matchesLost: {
    type: Number,
    defaultValue: 0
},
matchesTied: {
    type: Number,
    defaultValue: 0
},
points: {
    type: Number,
    decimal: true,
    defaultValue: 0
},
netRunRate: {
    type: Number,
    decimal: true,
    defaultValue: 0,
    min: -90,
    max: 90
},
pointsDeducted: {
    type: Number,
    optional: true
},
isOurTeam: {
    type: Boolean,
    defaultValue: false
}

});

Teams.attachSchema(TeamSchema);
4

1 に答える 1

1

allowedValues は配列を想定しており、それに関数を渡しています。関数が呼び出されないため、配列を返すかどうかは問題ではありません。このような即時呼び出し関数を使用できます

var CompetitionsSchema = new SimpleSchema({
year: {
    type: String
},
division: {
  type : String,
  allowedValues: ['Elite', '1st','2nd','3rd','4th','Intro']
},
teams:{
    type : [TeamSchema],
    allowedValues: (function () {
        return Teams.find().fetch().map(function (doc) { return doc.name; });
    }()) //here we wrap the function as expression and invoke it
}
});

于 2015-11-02T15:14:05.170 に答える