У меня есть некоторые документы в MongoDB, которые выглядят как этотPhp ошибка при попытке обновить 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';
}
Я знаю строку кода, что это неправильно (синтаксис мудрый я угадал) это линия, которая делает the ...->update()
Если я прокомментирую это, я делаю это для эха.
Что я пытаюсь сделать, это сохранить все user ids
внутри массива like, так как вы видите, что один из сообщений имеет пустой массив, вот как я планирую начать все сообщения.
Я запутался, почему этот код не работает, я в значительной степени скопировали их прямо отсюда
EDIT:
Чтобы добавить, мне очень нравится то, что выше пост говорит об этом не позволяя ему создавать дубликаты при использовании $addToSet
. Поскольку пользователю не должно нравиться сообщение более одного раза, никогда не будет времени, когда идентификатор должен быть более одного раза