2017-04-08 6 views
0

In meiner movies Sammlung geben, ich habe ein year Feld, das ein String (Beispiel: "year": "2010") istneue NumberInt() nicht erwartetes Ergebnis in mongodb

I Jahr in all meiner Sammlung aktualisieren möchten, ändert es ein int, damit ich es mit anderen int-Feldern vergleichen kann.

Ich habe versucht, die folgenden:

db.movies.updateMany({}, {$set: {year: new NumberInt("$year")}}) 

, die jedes Jahr Wert auf 0 (int), und nicht der String-Wert ändert sich in int umgewandelt.

Ich versuchte auch db.movies.updateMany({}, {$set: {year: parseInt("$year", 10)}}), aber es gibt NaN überall zurück.

Ich habe schon seit einer Weile versucht und ich kann nicht sehen, was ich falsch mache! Jede Hilfe sehr geschätzt :)

+0

In robomongo UI, es buchstabiert "$ year", also denke ich nicht! Es wirft einen Fehler auf, wenn ich ohne Anführungszeichen versuche – DrunkDevKek

Antwort

0

können Sie versuchen, klassische Art und Weise

var customUpdate = function(document) { 
    var val = parseInt(document.year, 10); 
    db.movies.update(
    {_id:document._id}, 
    {$set: {year: val}} 
); 
} 

db.movies.find().forEach(customUpdate) 

Update MongoDB field using value of another field

Verwandte Themen