首页 > 解决方案 > 根据两个条件使用php从mongodb中删除

问题描述

我想做如下的事情:

  $result = $videos->deleteOne([
            'video_name' => $data->name,
            'user_id' => $user_id
        ]);

它会这样工作吗?我想删除具有该 userId 和 video_name 的记录。现在的问题是它正在删除一些东西。因为我有 50 条记录,当我按删除时,我有 49 条,然后又是 48 条,但不是应该删除的记录!所以我的怀疑是因为我不太习惯 php。如何重写它以使其仅在满足两个条件时才删除?

标签: phpmongodb

解决方案


我认为如果两个条件都满足,它们将被删除,如果不满足,您可以先找到然后使用 _id 对该实体执行删除

$entity = $videos->findOne([
    'video_name' => $data->name,
    'user_id' => $user_id
]);


$result = $videos->deleteOne([
    '_id' => $entity->_id
]);

推荐阅读