更新mongodb文档时删除字段

时间:2015-05-19 05:47:15

标签: mongodb date save mongodb-php

我是mongoDB的新用户,在使用Save()时遇到了一些更新问题。

当我点击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” - 字段中保留日期,而不更新其值?

1 个答案:

答案 0 :(得分:0)

使用可以使用更新命令

完成

$ collection-&gt; update(array('id'=&gt; id),array('$ set'=&gt; array('updated_at'=&gt; $ article ['updated_at']))); < / p>