Php Mongodb插入现有阵列
嘿,我在将元素插入现有mongodb文档时遇到问题。 目前,my db中有一个数组包含一个元素:Php Mongodb插入现有阵列,php,arrays,mongodb,Php,Arrays,Mongodb,嘿,我在将元素插入现有mongodb文档时遇到问题。 目前,my db中有一个数组包含一个元素: $count = array(); array_push($count, 0); $dbase->insert(array("_id"=> $_id,"count"=>$count)); 但是,我现在希望在“计数数组”中插入一个元素,环顾四周后,这是推荐的方法: $count=4; $dbase->update(array('_id'=>'57b35f7bce23
$count = array();
array_push($count, 0);
$dbase->insert(array("_id"=> $_id,"count"=>$count));
但是,我现在希望在“计数数组”中插入一个元素,环顾四周后,这是推荐的方法:
$count=4;
$dbase->update(array('_id'=>'57b35f7bce23505c10000029'),array('$count'=>$count));
然而,这是抛出一个错误(错误500,内部服务器错误),我不确定为什么。Iv还尝试使用insert,但结果是创建了一个新文档。如果有任何帮助,我们将不胜感激。虽然我不确定您为什么需要在此处使用阵列,但有几种方法可以更新阵列及其成员 连接到数据库/集合
$m = new MongoClient();
$db = $m->your_database;
$collection = $db->your_colection;
更新阵列的一个成员
如果要更新数组的一个成员(在本例中为0
成员),请执行以下操作
$collection->update(
array("_id"=> new MongoId("57b6556aa9087c06687ecd7c")),
array('$set'=>array("count.0"=> 4))
);
添加到数组中
如果要将新项目添加到数组中,可以执行以下操作
$collection->update(
array("_id"=> new MongoId("57b6556aa9087c06687ecd7c")),
array('$push'=>array("count"=> 4))
);
现在数组中有两个成员
注意:只有当count
确实是一个数组时,这才有效
将“计数”更新/更改为数字
$collection->update(
array("_id"=> new MongoId("57b35f7bce23505c10000029")),
array('$set'=>array("count"=> 4))
);
这将使原来的数组变成一个数字
通常,我建议不要在这里使用数组,除非您确实需要存储多个值
此外,根据您的MongoDB PHP驱动程序版本,您可能需要使用:
newmongodb\BSON\ObjectID()代码>而不是新的MongoId()
注意,您正在尝试使用PHP变量$count
的值更新$count
。。。这将不会像您期望的那样起作用,请参见下面我的答案。感谢我的意思是您添加到阵列解决方案中的解决方案感谢您如此彻底地进行了澄清,您通过php澄清了我关于mongodb的许多问题,文档中似乎到处都是不同版本的php版本,这让我很难找到我要找的内容,所以再次感谢。@Dean219,没问题!我同意,官方PHP文档相当混乱&可以使用一些简单、更直接的示例:/