Что не так с deleteAll?

Попытался организовать массовое удаления вот так
public function removeList($collection_id, $ids){
        $list=[];
        foreach ($ids as   $ind) {
            $v = static::NormalizeNumber($ind);
            if ($v) {
                $list[] = $v;
            }
        }
        try {
            self::deleteAll(['and',['id'=> $list,'collection_id'=>$collection_id]]);
        }catch (\Exception $e) {
                return $e->getMessage();
            }
        return 'ok';
    }

но не удаляет
Вот так в дебагере показывает
viber.phone.bulkWrite([{"type":"delete","condition":{"$and":[{"_id":{"$in":["572457469782","572457469783"]},"collection_id":"1"}]},"options":{"limit":0}}])

а удаления не происходит
  • Вопрос задан
  • 562 просмотра
Пригласить эксперта
Ответы на вопрос 1
kimono
@kimono
Web developer
self::deleteAll(['and',['id'=> $list,'collection_id'=>$collection_id]]);

Во-первых, здесь and - это лишнее. Можно просто:
self::deleteAll(['id' => $list, 'collection_id' => $collection_id]);

Во-вторых, раз не удаляет, возможно нет записей, подходящих по условию?
Проверьте, что выдаёт:
self::find()->where(['id' => $list, 'collection_id' => $collection_id])->count();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы