MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB Number Field няма да вмъкне или актуализира с номера, който въвеждам

Съжалявам, не разбрах въпроса ви в началото и затова дадох грешен отговор (благодаря на cababunga, че посочихте това). Ето един правилен.

Mongoshell поддържа различни типове данни . И се опитва да отгатне вашия тип данни, когато го въведете. Въведете големия си номер:138548488276343678 . Имайте предвид, че е по-голям от 2^31-1, което е максимумът за 32-битово цяло число. Така че го третира като плувка и тъй като плаващите не се съхраняват точно, тя го модифицира малко. Ето защо вашият запаметен номер е почти същият, но се различава с малко (тази разлика ще бъде по-малка от 8). Но вие искате да съхраните това число точно и mongo да поддържа 64-битово цяло число (което отговаря на вашето цяло число).

Така че трябва да посочите, че искате да го съхраните като 64-битово цяло число . Можете да направите това по следния начин:

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

След това можете да извлечете вашия документ db.a.find() и ще е правилно. Имайте предвид, че много драйвери имат подобни проблеми и затова трябва изрично да кажете, че ще ги запазите като 64-битово цяло число.

Ако не посочвате _id за документа, който създавате, mongodb създава _id поле само по себе си. Можете да прочетете малко повече за _id тук и в официална документация .

Ако имате собствено поле, което искате да използвате като _id , вместо да пишете id:138548488276343678 трябва да напишете _id : 138548488276343678 .

P.S. също тъй като виждам, че използвате доста големи числа, имайте предвид, че целите числа в mongodb се съхраняват като 64-битови цели числа (което означава, че е между -2^63 до 2^63 - 1)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Групиране по стойности и условия

  2. MongoDB клиент хвърля FileNotFoundException в mscorlib

  3. Групов резултат по 15 минути времеви интервал в MongoDb

  4. Стартирайте Mahout RowSimilarity препоръчител на MongoDB данни

  5. Как да индексирам множество уникални полета с данни в един документ в Mongoose?