W jaki sposób mogę zmusić Mongo do wstawienia liczby całkowitej?MongoDB wstawia pływak, próbując wstawić liczbę całkowitą
Dziękuję
W jaki sposób mogę zmusić Mongo do wstawienia liczby całkowitej?MongoDB wstawia pływak, próbując wstawić liczbę całkowitą
Dziękuję
db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})
Można również użyć NumberLong.
ale w findOne mówi NumberLong (0) nie jako 0 – daydreamer
Domyślnie powłoka mongo traktuje wszystkie liczby jako liczby zmiennoprzecinkowe. Musimy więc wyraźnie określić, jaki typ numeru chcemy użyć, np. NumberInt lub NumberLong. http://docs.mongodb.org/manual/core/shell-types/ – Yadu
Mam pytanie. NumberInt jest dostępny tylko w powłoce mongo, jak to zrobić w języku JavaScript takim jak node.js? – Shawyeok
dobrze, to JavaScript, więc to, co masz w „value” jest liczbą, która może być liczbą całkowitą lub pływaka. Ale tak naprawdę nie ma różnicy w JavaScript. Od Learning JavaScript:
numer typu danych
typy danych Ilość w JavaScript są numery-zmiennoprzecinkowych, ale mogą lub nie mogą mieć składnik ułamkową. Jeśli nie mają one przecinka dziesiętnego ani części ułamkowej, są traktowane jako liczby całkowite-podstawa-10 w zakresie od -2 do 2 .
Właściwie to nie jest prawda. Chociaż JS nie widzi różnicy, jak tylko połączysz się z mongo z innego języka (np. Java), poczujesz różnicę. –
Moja aplikacja złamała się w różnych punktach tylko z jednego powodu, int jest zapisywane i zwracane jako zmiennoprzecinkowe. Podejrzewam, że przyczyną muszą być ręczne wstawienia, które zrobiłem przez powłokę mongo, która używa javascript. – Melsi
Nieco prostsza składnia (w Robomongo przynajmniej) pracował dla mnie:
db.database.save({ Year : NumberInt(2015) });
Jeśli typ wartość jest już dwukrotnie, a następnie zaktualizować wartość z $ zestaw poleceń nie można zmienić typ wartości double do int przy użyciu funkcji NumberInt() lub NumberLong(). Aby zmienić typ wartości, należy zaktualizować cały rekord.
var re = db.data.find({"name": "zero"})
re['value']=NumberInt(0)
db.data.update({"name": "zero"}, re)
której wersji mongodb używasz? – kamaradclimber
Używam 1.8.1 – daydreamer
https://jira.mongodb.org/browse/SERVER-854 – kamaradclimber