【发布时间】:2019-06-10 10:11:34
【问题描述】:
我正在尝试创建任务集合,其中每个用户都有自己的对象,并且他的任务分为不同的日子。不幸的是,当我尝试为现有日期添加新任务时,mongo 复制了 day 对象。我为 Symfony 使用 facile-it/mongodb-bundle
这是我的代码:
$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
我应该怎么做才能使其按预期工作?
【问题讨论】:
-
addToSet 将唯一项添加到数组中。在您的情况下,“项目”是日期和任务列表的组合。不仅仅是日期。