> db.data.update({'name': 'zero'}, {'$set': {'value': 0}})
> db.data.findOne({'name': 'zero})
{'name': 'zero', 'value': 0.0}
Wie bringe ich Mongo dazu, eine ganze Zahl einzufügen?
Danke dir
> db.data.update({'name': 'zero'}, {'$set': {'value': 0}})
> db.data.findOne({'name': 'zero})
{'name': 'zero', 'value': 0.0}
Wie bringe ich Mongo dazu, eine ganze Zahl einzufügen?
Danke dir
Antworten:
db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})
Sie können auch NumberLong verwenden.
Eine etwas einfachere Syntax (zumindest in Robomongo) hat bei mir funktioniert:
db.database.save({ Year : NumberInt(2015) });
Wenn der Werttyp bereits doppelt ist, kann die Aktualisierung des Werts mit dem Befehl $ set den Werttyp double nicht in int ändern, wenn die Funktionen NumberInt () oder NumberLong () verwendet werden. Um den Werttyp zu ändern, muss der gesamte Datensatz aktualisiert werden.
var re = db.data.find({"name": "zero"})
re['value']=NumberInt(0)
db.data.update({"name": "zero"}, re)
$set
funktionierte zumindest in Mongo 4.2, also war dies vielleicht ein Fehler.
Nun, es ist JavaScript. Was Sie also in 'value' haben, ist eine Zahl, die eine ganze Zahl oder ein Gleitkomma sein kann. Aber es gibt keinen wirklichen Unterschied in JavaScript. Vom Erlernen von JavaScript :
Der Nummer-Datentyp
Zahlendatentypen in JavaScript sind Gleitkommazahlen, können jedoch eine Bruchkomponente enthalten oder nicht. Wenn sie keinen Dezimalpunkt oder keine Bruchkomponente haben, werden sie als Ganzzahlen behandelt - Basis-10-Ganzzahlen in einem Bereich von –2 53 bis 2 53 .