在php- mongodb代码中插入32位和64位mongodb是否有任何差异


is there any difference in php-mongo codes for insertion for 32 bit and 64 bit mongodb?

我使用这些代码插入一个新的文档与子文档数组到mongodb,它仍然在32位mongo

$product = array(
                    'field1' => "value",
                    'field2' => "value",
                    'field3' => "value",
                    'field4'=> 
                    [array
                        (
                            'subfield1'=>"value",
                            'subfield2' => "value",
                            'subfield3' =>"unknown",
                            'subfield4'  =>"unknown",
                            'subfield5'    =>"unknown",
                            'subfield6'=>"n"
                        )
                    ],

                    );
                    $collection->insert( $product );

但是当我在64位mongo中使用相同的代码时,没有插入发生,

我用'('替换了'[',然后插入发生了,但不是得到一个子文档数组,而是得到一个子文档对象

用这个代替

{
    "_id" : ObjectId("53f2f2ee4c3f9f33c6b72464"),
"field1" : "value",
"field2" : "value",
"field3" : [
    {
        "subfield1" : "Miles to go before i sleep",
        "subfield2" : "song",
        "subfield3" : "long before"
    }
           ]
}

i am get this

{
    "_id" : ObjectId("53f2f2ee4c3f9f33c6b72464"),
"field1" : "value",
"field2" : "value",
"field3" : 
    {
        "subfield1" : "Miles to go before i sleep",
        "subfield2" : "song",
        "subfield3" : "long before"
    }
}

,但我可以通过mongo shell插入它,只有mongo shell不是通过php-mongo,我也不能添加子文档到相同的,即添加另一个子字段数组到字段3通过php-mongo请帮帮我,我绝望了

我想出来了,给了我很大的压力,但解决办法很简单,

代替使用[使用'(array('这是唯一的变化,'64bit'或其版本或其他不支持数组作为在php-mongo查询[。这是工作代码

 $product = array(
                'field1' => "value",
                'field2' => "value",
                'field3' => "value",
                'field4'=> 
                (
               array( 
                  array(
                        'subfield1'=>"value",
                        'subfield2' => "value",
                        'subfield3' =>"unknown",
                        'subfield4'  =>"unknown",
                        'subfield5'    =>"unknown",
                        'subfield6'=>"n"
                    )
                )
             ),

                );
                $collection->insert( $product );