Удалить встроенный документ из MongoDB PHP

0

Я пытаюсь создать запрос, который удаляет встроенный документ из документа MongoDB в PHP. У меня теперь есть:

$collection->update(array("_id" => new MongoId($id)),
        array('$unset' => 'BUSCO.short_summary_data'));

Я также пробовал:

$collection->remove(array("_id" => new MongoId($id)),
        array('$unset' => 'BUSCO.short_summary_data'));

Ошибка не возникает, но встроенный документ все еще существует! Может ли кто-нибудь помочь мне?

Теги:

1 ответ

2
Лучший ответ

Ваше текущее выражение, написанное в JSON, выглядит следующим образом:

{ $unset: 'BUSCO.short_summary_data' }

Но согласно документации:

Оператор $ unset удаляет определенное поле. Рассмотрим следующий синтаксис:

{ $unset: { <field1>: "", ... } }

Указанное значение в выражении $ unset (т.е. "") не влияет на операцию.

Таким образом, $unset ожидает массив с парами ключ-значение. Пытаться:

$collection->update(array("_id" => new MongoId($id)),
        array('$unset' => array('BUSCO.short_summary_data' => '')));
  • 0
    Спасибо! Это то, что я искал :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню