Sono nuovo su Mongoose/nodejs e sono alle prese con un semplice aggiornamento di un array all'interno di un array.Come aggiornare in mangusta?
Ecco lo schema:
var County = new Schema({
_id : Schema.ObjectId,
name : String,
biggestCity : String
});
var Country = new Schema({
_id : Schema.ObjectId,
name : String,
counties : {type: [County], ref: "County"}
});
var Continent = new Schema({
_id : Schema.ObjectId,
countries : {type: [Country], ref: "Country"},
});
Ed ecco il codice di aggiornamento che ho cercato:
var continents = mongoose.model("Continent");
var update = { "countries.counties.name": newName, "countries.counties.biggestCity": newBiggestCity };
var conditions = { "_id": countryId, "countries.name": countryName, "countries.counties.name": countyName };
var options = { multi: false };
wagers.update(conditions, update, options, function(err, numAffected) {
//callback code...
});
Nel fare questo, l'errore nella err dice "Impossibile aggiungere a matrice utilizzando nome campo stringa "contee" ". Cosa significa questo? Che cosa sto facendo di sbagliato?
Ok. Non c'è un modo alternativo per aggiornare l'array nidificato, senza dover ridefinire lo schema? – tremolo
@tremolo: ci può o no (il mio Mongoose-fu è ancora debole), ma penso che sia comunque una buona idea definire uno schema per 'Paese '. – Ashe
@tremolo: potresti aggiornare la tua domanda con il nuovo codice? – Ashe