以下の構造を持ち、参加者(league.division.participants)のオブジェクトを削除しようとしています。mongooseを使って配列の配列にあるオブジェクトにアクセスする
var participantSchema = new mongoose.Schema({
player: { type: mongoose.Schema.Types.ObjectId, ref: 'Player' },
record: { type: mongoose.Schema.Types.ObjectId, ref: 'ParticipantRecord' },
events: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Event' } ]
});
var divisionSchema = new mongoose.Schema({
name: String,
participants: [ participantSchema ]
});
var leagueSchema = new mongoose.Schema({
name: String,
startDate: { type: Date, default: Date.now },
endDate: Date,
locked: Boolean,
leagueType: { type: mongoose.Schema.Types.ObjectId, ref: 'LeagueType' },
game: { type: mongoose.Schema.Types.ObjectId, ref: 'Game' },
divisions: [ divisionSchema ],
});
mongoose.model('League', leagueSchema);
var _RemoveDivisionParticipant = function(participantId)
{
return new Promise((resolve,reject) =>{
Models.League.findOne({'divisions.participants._id':participantId})
.populate('divisions')
.populate('divisions.participants')
.exec((err, league) => {
if (err) {return reject(err)}
league.divisions(XXXXX).participants(participantId).remove();
console.log(league.divisions[0].participants[0])
})
})
}
これは私がこれまで持っているものですが、明らかにそれはリーグオブジェクトを返し、私は参加者が(中XXXXX中で示された区分がわからないので、私は参加者に取得する方法がありません標本、見本)。私が何をすべきかについてのあらゆる指針?
http://stackoverflow.com/questions/30714938/lodash-property-search-in-array-and-in-入れ子の子配列 これは助けることができる –
この関連するポストの答えを読む - http://stackoverflow.com/questions/14763721/mongoose-delete-array-element-in-document-and-save – SylonZero