我正在尝试将字符串00300和000029620保存为mongodb中的数字。
这是结果
db.test.save({"number": 00402})
{ "_id" : ObjectId(""), "number" : 258 }
db.test.save({"number": 00300})
{ "_id" : ObjectId(""), "number" : 192 }
答案 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) }