当你在 Mongo 2.6 中做这样的事情时db.test.insert({a : 1, b : [2, 3]})
你会得到{ "_id" : ObjectId("..."), "a" : 3, "b" : [2, 3]}
。没什么意外的。
当我通过 php 做类似的事情时Mongo 2.4.10
with 1.4.5 driver
:
$test->insert([
'a' => 1,
'b' => [2 ,3]
])
我仍然得到相同的正常数字。但是当我在做这样的事情时Mongo 2.6.0
结果不同:
{
"_id" : ObjectId("534a...567"),
"a" : NumberLong(1),
"b" : [
NumberLong(2),
NumberLong(3)
]
}
正如你所看到的,数字被转换为NumberLong
。而且这是相同的整数(只是它可以更大),我不希望这种行为,因为a)在shell中读取的时间更长,b)我所有的数字都在下面100000
因此,在那里放置 numberLong 是没有意义的。
我在用php 5.5.10
with mongoDriver 1.5.1