在mongodb中保存00402等号码

时间:2012-03-03 23:19:17

标签: mongodb

我正在尝试将字符串00300和000029620保存为mongodb中的数字。

这是结果

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

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

2 个答案:

答案 0 :(得分:3)

如果你想交出MongoDB 00402并将其存储为402,那么你可以将00402作为字符串发送,并使用基数为parseInt的基数10把它变成一个整数:

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

这会在{ "number" : 402 }集合中为您test提供。

我认为你最好在你的客户端代码中处理这类事情,在MongoDB之外构建适当的整数然后将整数发送到MongoDB。

答案 1 :(得分:0)

另一种选择:您可以使用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) }