Я новичок в 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, так как он не обновляет его значение?