尝试更新MongoDB数组的Php错误

时间:2016-06-28 04:31:05

标签: php mongodb

我在mongodb中有一些看起来像这样的文件

{ "_id" : ObjectId("576f46ca6803fab30e7b23c8"), 
  "username" : "Dallas", 
  "likes" : [ "576f46ca6803fab30e7b23c8", "576f4c446803faae0e7b23c9" ]}

{ "_id" : ObjectId("576f46ca6803fab31e7b23c8"), 
  "username" : "Dallas", 
  "likes" : [ ]}

<?php

$m = new MongoClient();
$db = $m->testing;
$collection = $db->testCollection;

addLike();

//Add likes
function addLike()
{

$id = new MongoId("576f46ca6803fab30e7b23c8");

$collection->update(array('_id' => $id),array('$addToSet' => array('likes' => '4d0b9c7a8b012fe287547157')));

echo 'addLike seemed to work';
}

我知道错误的代码行(语法方面我猜测)是执行...-&gt; update()

的行

如果我对此发表评论,我会回应它。

我尝试做的是将所有user ids存储在所喜欢的数组中,因为您看到其中一个帖子有一个空数组,这就是我打算如何开始所有帖子。

我很困惑为什么这段代码不起作用,我几乎直接从这里复制了

编辑:

要添加,我真的很喜欢上面的帖子所说的,在使用$addToSet时不允许它重复。因为用户不可能不止一次地喜欢帖子,所以id永远不会超过一次

1 个答案:

答案 0 :(得分:0)

看起来我的所有代码都是正确的,除了一些无法理解php语法。

我的印象是在函数之外创建一个集合变量是全局的,事实证明它不希望我在该函数内部调用集合,因此删除它修复的函数。