MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bidang Nomor MongoDB tidak akan dimasukkan atau diperbarui dengan nomor yang saya masukkan

Maaf, saya tidak mengerti pertanyaan Anda di awal dan karena itu memberikan jawaban yang salah (terima kasih cababunga untuk menunjukkan ini). Jadi ini yang benar.

Mongoshell mendukung tipe data . Dan ia mencoba menebak tipe data Anda saat Anda memasukkannya. Jadi, masukkan angka besar Anda:138548488276343678 . Perhatikan bahwa ini lebih besar dari 2^31-1 yang merupakan maksimum untuk bilangan bulat 32-bit. Jadi itu memperlakukannya sebagai pelampung dan karena pelampung tidak disimpan dengan tepat, itu memodifikasinya sedikit. Inilah sebabnya mengapa nomor yang Anda simpan hampir sama, tetapi sedikit berbeda (perbedaan ini akan kurang dari 8). Tetapi Anda ingin menyimpan nomor ini dengan tepat dan mongo mendukung bilangan bulat 64-bit (yang sesuai dengan bilangan bulat Anda).

Jadi, Anda perlu menentukan bahwa Anda ingin menyimpannya sebagai integer 64bit . Anda dapat melakukannya dengan cara berikut:

db.a.insert({
  bound:"latest",
  id: NumberLong("138548488276343678"),  // Note these "". I was not using them and the number was not stored correctly
  complete:false
})

Setelah ini, Anda dapat mengambil dokumen Anda db.a.find() dan itu akan benar. Perhatikan bahwa banyak driver memiliki masalah serupa dan oleh karena itu Anda harus secara eksplisit memberi tahu bahwa Anda akan menyimpannya sebagai bilangan bulat 64bit.

Jika Anda tidak menentukan _id untuk dokumen yang Anda buat, mongodb membuat _id lapangan dengan sendirinya. Anda dapat membaca lebih banyak tentang _id di sini dan dalam dokumentasi resmi .

Jika Anda memiliki bidang sendiri, yang ingin Anda gunakan sebagai _id , alih-alih menulis id:138548488276343678 anda harus menulis _id : 138548488276343678 .

P.S. juga karena saya melihat bahwa Anda menggunakan angka yang cukup besar, perlu diingat bahwa bilangan bulat di mongodb disimpan sebagai bilangan bulat 64-bit (artinya antara -2^63 sampai 2^63 - 1)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. tidak dapat melakukan kueri melalui ListField (EmbeddedDocumentField)

  2. menyimpan teks lengkap dari file txt ke mongodb

  3. Bagaimana saya bisa menambahkan gambar di mongoDB?

  4. find({}) mengembalikan larik luwak yang kosong

  5. Membuat database di Mongo:tidak dapat terhubung, koneksi gagal