MongoDB:如何使用PHP而不是对象插入JavaScript数组?

问题描述

|
$update = $col->update(array(\'_id\' => \'test\'),array(\'$push\' => array(\'friends\' => 1)),array(\'safe\' => true,\'upsert\' => true));
$test = $col->findOne(array(\'_id\' => \'test\'));
debug(compact(\'update\',\'test\'));
不能按预期工作。 我得到(通过RockMongo检查):
{
   \"_id\": \"test\",\"friends\": {
     \"0\": 1 
   } 
}
我想要/期望有这个:
{
   \"_id\": \"test\",\"friends\": [
     1 
   ] 
}
有任何想法吗 ? 谢谢 !     

解决方法

我花了很多时间回过头来排查为什么我的数据被错误地插入的原因,只是为了发现RockMongo无法正确显示数据。 之所以如此,是因为RockMongo并没有真正将数据显示为Mongo文档,而是显示为PHP。 我发现由于某些原因,Firefox和chrome之间的几种不同数据类型有所不同...数组,日期,MongoID \ 但是最后,我在命令行上执行了find(),这是正确的。 我不相信RockMongo会告诉您什么,请参见下面的示例。 还有您需要使用\“ safe \”的原因吗? 实际数据 RockMongo说什么(错误)