2015-06-11 15 views
0

我要$unset從收集某些領域的任務,我想做的事:如何使用php mongo適配器從所有文檔中取消設置字段?

 $collection->update(
      array(
       'field' => array('$exists' => true), 
      ), 
      array(
       '$unset' => array(
        'field' => '', 
       ) 
      ), 
      array(
       'multi' => true 
      ) 
     ); 

在Xdebug的我得到:$collection: {w => 1, wtimeout => 10000},但是當我檢查數據庫沒有改變我的領域是有不變。

+0

此處的代碼看起來沒問題。您的實際查詢可能位於帶有「點符號」的嵌套字段上? –

+0

你有沒有嘗試將值設置爲一個布爾值,例如'array('$ unset'=> array('field'=> true))'? – chridam

+0

@ user3561036一些字段是嵌入的,其他是引用,但我不使用我的查詢點符號 –

回答

3

發現問題: 實際上,在multi在PHP中的參數是multiple,我沒有計數的答覆,並沒有看到它是隻是一個文件unset。

$collection->update(
     array(
      'field' => array('$exists' => true), 
     ), 
     array(
      '$unset' => array(
       'field' => '', 
      ) 
     ), 
     array(
      'multiple' => true 
     ) 
    ); 
相關問題