> db.data.update({'name': 'zero'}, {'$set': {'value': 0}})
> db.data.findOne({'name': 'zero})
{'name': 'zero', 'value': 0.0}
Bagaimana cara saya mendapatkan Mongo untuk memasukkan bilangan bulat?
Terima kasih
> db.data.update({'name': 'zero'}, {'$set': {'value': 0}})
> db.data.findOne({'name': 'zero})
{'name': 'zero', 'value': 0.0}
Bagaimana cara saya mendapatkan Mongo untuk memasukkan bilangan bulat?
Terima kasih
Jawaban:
db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})
Anda juga bisa menggunakan NumberLong.
Sintaks yang sedikit lebih sederhana (setidaknya di Robomongo) bekerja untuk saya:
db.database.save({ Year : NumberInt(2015) });
Jika tipe nilai sudah dobel, maka perbarui nilainya dengan perintah $ set tidak bisa mengubah tipe nilai dobel menjadi int saat menggunakan fungsi NumberInt () atau NumberLong (). Jadi, untuk Mengubah jenis nilai, itu harus memperbarui seluruh catatan.
var re = db.data.find({"name": "zero"})
re['value']=NumberInt(0)
db.data.update({"name": "zero"}, re)
$set
bekerja setidaknya di Mongo 4.2, jadi mungkin ini adalah bug.
Yah, itu JavaScript, jadi yang Anda miliki dalam 'nilai' adalah Angka, yang bisa berupa bilangan bulat atau pelampung. Tapi sebenarnya tidak ada perbedaan dalam JavaScript. Dari Belajar JavaScript :
Tipe Data Angka
Tipe data angka dalam JavaScript adalah angka floating-point, tetapi mereka mungkin atau mungkin tidak memiliki komponen fraksional. Jika mereka tidak memiliki titik desimal atau komponen fraksional, mereka diperlakukan sebagai bilangan bulat — bilangan bulat basis-10 dalam kisaran –2 53 hingga 2 53 .