为什么mongodb将一些数字存储为NumberLong?

时间:2015-04-15 08:22:03

标签: mongodb spring-data spring-data-mongodb

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值更改某些内容以使用相同的数据类型?

1 个答案:

答案 0 :(得分:1)

我一直在使用Laravel和MongoDB,就我对MongoDB的理解而言,我创立了: 如果您将数据(数字)保存在引号中,它将保存为字符串,但如果您以正常方式(没有引号)将数字分配给变量,那么它将以NumberLong格式保存,或者当您通过使用进行类型转换时的(int)的

  

实施例

$data = '1' (Stores as string)
$data = 1 or $data = (int)'1' (Store as NumberLong)