当我添加新记录时,日期保存为字符串:
"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();
答案 0 :(得分:1)
仅适用于@MongoDB\Date
注释。
添加第二个注释@MongoDB\Field(name="created_at")
时,它不会以正确的类型保存日期。原因是@MongoDB\Field
注释需要指定数据类型。
通过更改注释来解决问题:
/**
* @MongoDB\Date
* @MongoDB\Field(name="created_at")
*/
为:
/**
* @MongoDB\Field(name="created_at", type="date")
*/