我在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永远不会超过一次
答案 0 :(得分:0)
看起来我的所有代码都是正确的,除了一些无法理解php语法。
我的印象是在函数之外创建一个集合变量是全局的,事实证明它不希望我在该函数内部调用集合,因此删除它修复的函数。