2015-05-19 6 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” -field, так как он не обновляет его значение?

ответ

0

использование может сделать это с помощью команды обновления

$ галерею-> Обновление (массив ('ID' => идентификатор), массив ('$ набор' => Array ('updated_at' => $ статье [» updated_at '])));

Смежные вопросы