如何将日期保存为使用Doctrine的MongoDB对象


How to save date as an object to MongoDB using Doctrine?

当我添加新记录时,日期保存为字符串:

"created_at" : "0.67200000 1407770545" 

我的问题是如何保存日期作为一个对象?我希望看到这样的内容:

"created_at" : ISODate("2013-09-22T07:41:44.451Z"),
我代码:

class User
{
    /**
     * @MongoDB'Date
     * @MongoDB'Field(name="created_at")
     */
    protected $createdAt;
    /**
    * @param MongoDB'Date $createdAt
    * @return self
    */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;
        return $this;
    }
    /**
    * @return MongoDB'Date $createdAt
    */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }
}
$user= new User();
$user->setCreatedAt(new 'MongoDate());
$dm = $this->get('doctrine_mongodb')->getManager();
$dm->persist($user);
$dm->flush();

仅适用于@MongoDB'Date注释。

当添加第二个注释@MongoDB'Field(name="created_at")时,它没有以正确的类型保存日期。原因是@MongoDB'Field标注需要指定数据类型。

通过更改注释来修复这个问题:

/**
 * @MongoDB'Date
 * @MongoDB'Field(name="created_at")
 */

:

/**
 * @MongoDB'Field(name="created_at", type="date")
 */