2017-05-17 4 views
-1

Das Problem, dass ich keinen Zugriff auf Array in Array erhalten kann. Hier ist mein Mongoose Schema:JS Array in JSON von Mongoose Schema

const newSchema = mongoose.Schema({ 
    email   : String, 
    name    : String, 
    array : [Number] 
}) 

Und hier ist es, Daten, die ich in Array setzen:

{ 
    "array": [ 
    -11, 
    "10,10,0", 
    "1" 
    ] 
} 

Jetzt versuche ich, den Wert "10" in der zweiten Reihe wie folgt zu aktualisieren:

newAccount.array[3,0] = parseInt(someVariable) 

oder wie diese

newAccount.array[3][0] = parseInt(someVariable) 

Aber der Wert ändert sich auf keinen Fall. Wie kann ich es richtig ändern?

+0

Ihr Schema hat ein Array vom Typ Zahl, aber Sie haben Strings in Ihren Daten. Versuchen Sie auch, "10" innerhalb von "10,10,0" zu aktualisieren? ... das ist ein String kein Array –

+0

Können Sie einen der gültigen JSON-Datensätze anzeigen, die gegen das Schema gelten? –

Antwort

0

Dies ist eine schnelle und schmutzige Lösung für Ihr Problem:

var obj = { 
    array: [ 
     -11, 
     '10,0,0', 
     12 
    ] 
} 
// splitting by ',' char 
const newArray = obj.array[1].split(',') 
// enter your new variable here. 
newArray[0] = parseInt(someVariable); 
// join them together so that we have the old structure back. 
obj.array[1] = newArray.join(','); 

console.log(obj); 

ein besserer Ansatz wäre, um Ihre Datenanreicherung auf diese Weise neu strukturiert, dass Sie nicht dort Mischtypen verfügen.

und das Ergebnis:

enter image description here