Ich habe zwei Schemas
, eventSchema
und personSchema
wie unten dargestellt:Mongoose entfernen Dokument mit Referenzen
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var eventSchema = Schema({
title : String,
location : String,
startDate : Date,
endDate : Date
});
var personSchema = Schema({
firstname: String,
lastname: String,
email: String,
dob: Date,
city: String,
eventsAttended: [{ type: Schema.Types.ObjectId, ref: 'Event' }]
});
var Event = mongoose.model('Event', eventSchema);
var Person = mongoose.model('Person', personSchema);
Wie kann ich alle eventsAttended
aus einem gelöschten Person
entfernen?
Zum Beispiel, wenn ich eine Person
entfernen, dann erwarte ich, dass alle Ereignisse, die dieser Person
zugeordnet sind, entfernt werden.
Dies ist mein Code:
Person.findOneAndRemove({_id: req.body._id}, (err, response) => {
// remove the events assigned to this person
})
Dies funktioniert perfekt! Würdest du mir bitte auch sagen, wie ich einer "Person" ein neues "Event" hinzufügen kann? – Valip
Mongoose unterstützt Methoden wie push oder addToSet für Filialdokumente: http://mongoosejs.com/docs/api.html#types_array_MongooseArray.addToSet - in Ihrem Beispiel können Sie also 'aPersonDoc.eventsAttended.addToSet (anEventId)' oder 'aPersonDoc verwenden .eventsAttended.push (anEventId) ' – DevDig