2015-05-19 48 views
1

我是mongoDB的新手,在使用Save()時,我偶然發現了一些更新問題。更新mongodb文檔時刪除的字段

當我點擊我的HTML頁面保存按鈕我運行下面的代碼:

<?php 
$action = (!empty($_POST['btn_submit']) && 
     ($_POST['btn_submit'] === 'Save')) ? 'save_article' : 'show_form'; 
$id = $_REQUEST['id']; 
try { 
    $mongodb = new Mongo(); 
    $articleCollection = $mongodb->myblogsite->articles; 
} catch (MongoConnectionException $e) { 
    die('Failed to connect to MongoDB ' . $e->getMessage()); 
} 
switch ($action) { 
    case 'save_article': 
     $article = array(); 
     if (!empty($id)) { 
      $article['_id'] = new MongoId($id); 
     } else { 
      $article['_id'] = new MongoId(); 
     } 
     $article['title'] = $_POST['title']; 
     $article['content'] = $_POST['content']; 
     $article['tags'] = $_POST['tags']; 

     if (!empty($id)) { 
      $article['updated_at'] = new MongoDate(); 
     } else { 
      $article['saved_at'] = new MongoDate(); 
     } 

     $articleCollection->save($article); 
     break; 
    case 'show_form': 
    default: 
     if (!empty($id)) { 
      $article = $articleCollection->findOne(array('_id' => new MongoId($id))); 
     } 
} 
?> 

的想法是,如果$id不是空我更新文檔,否則我插入。 我用save()來管理。

我想要兩個日期字段。一個保存文件的日期,另一個保存上次更新的日期。 無法更新「save_at」。每次更新時都會更改「updated_at」。 我現在的問題是,當我嘗試添加「updated_at」時,「save_at」被刪除。 我也更新「saved_at」-字段。

我的問題是:

如何插入一個新的領域('updated_at')無需拆卸「saved_at」 - 場?

如何在「saved_at」-字段中保持日期,而不更新其值?

回答

0

使用可以與更新命令來完成它

$收藏 - >更新(陣列( 'ID'=> ID),陣列( '$組'=>數組( '的updated_at'=> $文章[」的updated_at'])));

相關問題