Сохранение номера, например, 00402 в mongodb - PullRequest
1 голос
/ 04 марта 2012

Я пытаюсь сохранить строки типа 00300 и 000029620 как число в mongodb.

Это результат

db.test.save({"number": 00402})
{ "_id" : ObjectId(""), "number" : 258 }

db.test.save({"number": 00300})
{ "_id" : ObjectId(""), "number" : 192 }

Ответы [ 2 ]

3 голосов
/ 04 марта 2012

Если вы хотите передать MongoDB 00402 и сохранить его как 402, вы можете отправить 00402 в виде строки и использовать parseInt с основанием от 10 до превратить его в целое число:

db.test.save({"number": parseInt('00402', 10)})

Это даст вам { "number" : 402 } в вашей test коллекции.

Я думаю, что вам лучше справиться с подобными вещами в своем клиентском коде, однако, создайте соответствующее целое число вне MongoDB, а затем отправьте целое число в MongoDB.

0 голосов
/ 04 марта 2012

Другой вариант: вы можете использовать конструктор NumberLong, который будет интерпретировать строки как основание 10:

> db.test.save({"number":NumberLong("00402")});
> db.test.save({"number":NumberLong("00300")});  
> db.test.find();
{ "_id" : ObjectId("4f52b230621918e231bc55d5"), "number" : NumberLong(402) }
{ "_id" : ObjectId("4f52b233621918e231bc55d6"), "number" : NumberLong(300) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...