Mongodb安装在Windows 8上,我使用spring-data-mongodb
来处理它。
我收集了字段pId
,这是一个数字。
我看到奇怪的情况,mongodb将一些pId
存储为简单数字,但其中一些存储为NumberLong
。
查询:
db.mycollection.distinct("pId", {"dayDate" : { "$gte" : ISODate("2015-04-14T00:00:00.000Z")}})
输出:
[ 61885, 61886, NumberLong(61887) ]
为什么会发生这种情况,我是否可以针对所有pId
值更改某些内容以使用相同的数据类型?
答案 0 :(得分:1)
我一直在使用Laravel和MongoDB,就我对MongoDB的理解而言,我创立了: 如果您将数据(数字)保存在引号中,它将保存为字符串,但如果您以正常方式(没有引号)将数字分配给变量,那么它将以NumberLong格式保存,或者当您通过使用进行类型转换时的(int)的强>
实施例
$data = '1' (Stores as string)
$data = 1 or $data = (int)'1' (Store as NumberLong)