用于插入32位和64位mongodb的php-mongo代码有什么区别吗?

时间:2014-08-19 07:41:00

标签: php 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"
    }
           ]
}

我得到了这个

{
    "_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插入它,我也无法添加子文件到同一个是通过php-mongo将另一个子字段数组添加到字段3 请帮助我绝望

1 个答案:

答案 0 :(得分:0)

我弄清楚了,给了我很大的压力,但解决方案是如此的错误,

而不是使用[使用'(数组('这是唯一的更改,'64位'或其版本或其他不支持数组在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 );