Domanda

Come posso aggiornare un documento incorporato che è più di un livello profondo utilizzando la _id della voce desidero aggiornamento?

Per esempio, se ho il seguente nel mio file di modello:

var Subitems = new Schema({
  "title": String,
  "body": String
)}

var Items = new Schema({
  "title": String,
  "subitems": [Subitems]
)};

var Projects = new Schema({
  "title": String,
  "description": String,
  "items": [Items]
});

var exports = module.exports = mongoose.model('Project', Projects);

Come potrei fare per aggiornare il body di uno dei miei subitems dove so che il _id dell'elemento subitems?

presumo Desidero in primo luogo trovare il progetto (abbastanza facile), e poi spingere al subitems e salvare il progetto. Quindi la domanda è, come si fa a spingere ad un più di un livello profondo incorporare senza dover iterare attraverso tutto ciò sopra di esso? Posso farlo per la sua _id?

È stato utile?

Soluzione

Ok, penso che ho appena capito. Divertente come succede sempre a destra dopo annuncio a SO:)

Ecco quello che ho fatto, me lo faccia sapere se c'è un modo migliore / diverso:

var myitem  = req.project.items.id(item_id);
myitem.body = req.body.item.body;

req.project.save(function (err){
  //woohoo! updated the embedded doc with the new values!      
});

ho capito seguendo i consigli della risposta selezionata in questo post SO: Come aggiornare documento incorporato nella mangusta?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top