Так .. Мне было интересно, если в Мангусте я мог бы сделать что-то вроде этого:Mongoose: Установка поля в схеме, используя поисковый запрос
var Match = require('./models/Match);
ClubSchema = new mongoose.Schema({
_id: {type: String, required: true, unique: true},
name: {type: String, required: true, unique: true},
playedMatches: //Search query for played matches here (so like Match.find())
});
Так что я хочу поле playedMatches быть заполнено, когда я использую запрос поиск в клубе. Сейчас я использую своего рода «типа, как Singleton», чтобы заполнить поле playedMatches следующим образом:
ClubSchema.playedMatches = null;
ClubSchema.methods.setPlayedMatches = function (callback) {
var self = this;
Match.find({$or: [{homeClub: self._id}, {awayClub: self._id}], matchOver: true}).sort({playDate: 'asc'}).exec(function (err, matches) {
if (err) {
callback(err);
} else {
self.playedMatches = matches;
callback(false, matches);
}
});
};
ClubSchema.methods.getPlayedMatches = function (callback) {
if (!this.playedMatches) {
this.setPlayedMatches(function (err, matches) {
if (err) {
callback(err);
} else {
callback(false, matches);
}
});
} else {
callback(false, this.playedMatches);
}
};
Но потому, что я хочу, чтобы идти асинхронно, что на самом деле не работает, и я не хочу иметь вызвать метод, чтобы установить поле playedMatches первым, прежде чем я использовать любую другую функцию, которая использует причину playedMatches поля хорошо .. это просто некрасиво тоже ..
MatchSchema выглядит следующим образом:
var MatchSchema = new mongoose.Schema({
_id: {type: String, required: true, unique: true},
homeClub: {type: String, ref: 'Club'},
awayClub: {type: String, ref: 'Club'},
playDate: {type: Date, required: true},
goalsHomeClub: {type: Number},
goalsAwayClub: {type: Number},
matchOver: {type: Boolean, default: false}
});
Thnx заранее !
ли playedMatches хранящегося в другой коллекции? Отправьте код, который вы используете в настоящее время. – ZeMoon
Да, они хранятся в коллекции «спички», а клубы хранятся в коллекции «клубы». – user3081076
Не могли бы вы опубликовать схему и код модели для коллекции матча? – ZeMoon