我使用下面的版本是:插入MongoDB的ISODate PHP
PHP -> 5.6.11
MongoDB -> 3.2
MongoDB PHP Driver -> 1.1
當我在尋找安裝MongoDB的PHP驅動程序here我注意到,名爲「蒙哥」的司機已被棄用,並着手按照規定鏈接來安裝新的擴展名「MongoDB」。這將被稱爲php_mongodb。由於我使用的是Windows系統,我不得不將文件php_mongodb.dll
複製到我的../php/ext
,並添加行extension=php_mongodb.dll
到我的php.ini
使用現在已經過時的驅動程序我曾經是能夠插入MongoDate(如下圖) 。
<?php
$connection = new MongoClient();
$database = $connection->selectDB('test');
$coll = new MongoCollection($database, 'users');
$coll->insert(
(object)array(
"createdAt" => new MongoDate()
)
);
?>
的問題是,隨着新php_mongodb這MongoDate()似乎不提供我收到的錯誤:Fatal error: Class 'MongoDate' not found
- 什麼是相當於該使用新php_mongodb驅動程序?
- 我應該考慮將我的MongoDB版本降級到3.0,以便我可以使用現有的Mongo Driver?
- 是否有PHP本地方法來創建一個類型爲ISODate的日期?
我應該考慮將我的MongoDB版本降級到3.0,以便我可以使用現有的Mongo Driver?
這是我一直在努力,都無濟於事,下面將Timestamp
類型的值添加到文檔,但似乎因爲它是ISODate
類型的不,我無法強制執行TTL這個createdAt
場:
<?php
require '/vendor/autoload.php';
$date = new MongoDB\BSON\Timestamp(1, date('U'));
$manager = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017");
$collection = new MongoDB\Collection($manager, "test.users");
$ex = [
"createdAt" => $date
];
$result = $collection->insertOne($ex);
?>
我曾嘗試另一件事是下面的日期,但是沒有MongoDate()功能我不知道如何插入此作爲類型ISODate
MongoDB的:
date(DATE_ISO8601, date('U'));
嘗試var_dump(extension_loaded('mongodb'));並看看輸出是什麼。 – Nikhil
@Nikhil這將返回True –