Вставка и извлечение дат и временных меток в mongodb с использованием PHP - PullRequest
1 голос
/ 06 июля 2011

Я пытаюсь настроить простую систему блогов, используя mongo в качестве языка базы данных и php.Я не уверен, как поставить дату или метку времени в монго (наверное, мне нужна метка времени, чтобы я мог вернуть записи в порядке убывания, в котором они были опубликованы).Ниже я опубликовал то, что написал сейчас, как заглушку - которая создает дату PHP и вставляет ее, но кажется, что это String.Это то, к чему я так привык в Oracle, что застало меня врасплох в монго.Предложения?

     try{
        date_default_timezone_set('America/New_York');
        //$dt = date('j-m-y h-i-s');
        $conn = new Mongo(); // connect
        $db = $conn->selectDB("blog");
        $collection = $db->items;
        $item =array(
            'title' => $_POST['title'],
            'txt' => $_POST['txt'],
            'labels' => $_POST['labels'],
            'user' => $_POST['user'],
            'dt' => date('j-m-y h-i-s')
        );
        $collection->insert($item);

        /// disconnect from server
        $conn->close();
    } catch ( MongoConnectionException $e ) {
        echo '<p>Couldn\'t connect to mongodb, is the "mongo" process running?</p>';
        exit();
    }

1 Ответ

3 голосов
/ 28 июля 2014

На мой взгляд, наиболее подходящим способом является использование MongoDate . Итак, чтобы вставить его, вам нужно сделать:

$collection->insert(array(
  'time' => new MongoDate()
));

Это вставит текущую дату (или в новом Mongo 2.6 вы можете сделать это таким образом ).

или

$collection->insert(array(
  'time' => new MongoDate(strtotime("2010-01-15 00:00:00"));
));

Вставит конкретную дату.

Чтобы получить вашу дату, вы можете использовать date('Y-M-d h:i:s', $yourDate->sec);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...