我正在尝试创建任务集合,其中每个用户都有自己的对象,并且他的任务划分为不同的日期。不幸的是,当我尝试为现有日期添加新任务时,mongo复制了day对象。我将facile-it / mongodb-bundle用于Symfony
那是我的代码:
$collection = $this->mongoConnection->selectCollection(Table::READ_MONGO_USER_TASKS);
if($collection->countDocuments(['user_id' => $userId->toString()]) === 0) {
$this->createUserDocument($collection, $userId);
}
$task = [
'id' => $event->taskId()->toString(),
'title' => $event->title()
];
$collection->updateOne(
[
'user_id' => $userId->toString()
],
[
'$addToSet' => [
'days' => [
'date' => $deadlineDate,
'tasks_list' => [$task]
]
]
]
);
当同一天有2个或更多任务时,我会收到类似以下内容: compass view
我应该怎么做才能使其按预期工作?
答案 0 :(得分:1)
如果要为现有日期添加新任务,则应在查询的第一个参数中而不是第二个参数中传递日期。您将使用特定的user_id和日期更新集合。 像这样
[
'user_id' => $userId->toString(),
'days.date' => $deadLineDate
]