splice ich Keywords mit NodeJS und Express von einem Mungo Dokument zu entfernen versuchen, die ein wenig wie folgt aussieht:Kann nicht Mungo Dokumentschlüssel
{
name: "Instagram",
description: "Image sharing website",
keywords: [{name:"Image", value: 1}, {name:"sharing", value: 1}, {name:"website"}, {name:"Instagram", value:5}, {name:"application", value: 2}]
}
Hier ist der Teil meiner Update-Abfrage, die auf das Problem scheint (es nicht gelöscht die Schlüsselwörter richtig, wenn es viele Schlüsselwörter sind, obwohl es ein paar mal mit paar Stichworte gearbeitet hat):
Model.findOne({_id:req.body.id}, function(err,doc){
for(var i = 0; i < doc.keywords.length; i++){
if(doc.keywords[i].value == 1){
doc.keywords.splice(doc.keywords[i], 1); //does nothing
doc.save()
console.log(doc.keywords[i]) //Shows the correct keywords to be deleted.
}
};
})
Der Grund, den ich nicht tue, ist, weil ich die Beschreibung des Gegenstandes aktualisiere, und Die Beschreibung des Objekts erfolgt in Schlüsselwörtern, dh die alten Beschreibungsschlüsselwörter müssen ersetzt werden. –
Verwenden Sie dann keywords.map? Ihr Beispiel schlägt vor, dass Sie einige Elemente aus dem Array Schlüsselwörter entfernen möchten. –
Karte ist in diesem Fall nicht nützlich. Ich muss ein Element im Array finden und es löschen, was nicht richtig funktioniert. Allerdings antwortet die Objekt-Array-Entfernung, die Sie verlinkt sagen, dass ich .splice() verwenden kann. Funktioniert das in meinem Fall nicht wegen node.js oder mongoose? –