Doctrine2 mongodb和时间戳

Doctrine2 mongodb和时间戳,mongodb,doctrine-orm,Mongodb,Doctrine Orm,我使用条令2向mongodb写信,实体如下所示: { "_id" : ObjectId("54538be2516bd636738b46f2"), "department" : "Assistance", "action" : "DONE", "idAppointment" : 2197, "service_order" : "F4889109", "access_number" : "164016178", "so_type" : "DERA", "stage"

我使用条令2向mongodb写信,实体如下所示:

{
  "_id" : ObjectId("54538be2516bd636738b46f2"),
  "department" : "Assistance",
  "action" : "DONE",
  "idAppointment" : 2197,
  "service_order" : "F4889109",
  "access_number" : "164016178",
  "so_type" : "DERA",
  "stage" : "D40",
  "id_va" : "FT452926",
  "id_icms" : "F4889109",
  "ref_isp" : "",
  "comment" : "",
  "first_available_schedule" : Timestamp(1414623600, 168),
  "asap" : false,
  "allday" : "NO",
  "operator" : "HD8",
  "created" : Timestamp(1414761442, 169)
}

现在,我想用querybuilder或在命令行上查询时间戳,但我不知道具体怎么做。任何帮助都将不胜感激。

对于初学者,您似乎在使用BSON类型,而实际上应该使用该类型。在ODM中,它们分别使用
@时间戳
@日期
注释。在PHP驱动程序中,相关的驱动程序类分别为和

正如上面的BSON文档链接所述,时间戳是供内部使用的(MongoDB在复制oplog中使用它)。如果您在应用程序中存储日期和时间,那么日期时间肯定是您应该使用的

看看ODM文档中的示例,很不幸的是,该示例将其放在
$created
字段中。我们最好使用一个不太令人鼓舞的字段名,并添加一个注释,说明用户可能不希望将字段映射为
@Timestamp


如果您确实将字段映射为
@Date
,则应该能够像使用任何其他字段和运算符(与日期值相关)一样使用查询生成器。在准备查询时,将最终通过运行与日期映射字段对应的查询值。这意味着该值可以是整数时间戳、日期时间或MongoDate实例。字符串也很合适,只要它能与
strotime()

一起使用,我错过了这一章,所以thx太多了。现在我必须将创建的字段更新为日期格式。你建议怎么做?Regard最好使用迁移脚本完成此操作,该脚本使用操作符查询要迁移的文档并更新每个文档。由于BSON timestamp和date字段都是64位整数,您根本不必担心文档的增长(所有更新都应该到位)。PHPCLI脚本应该可以很好地完成这项工作,并且应该很容易编写,如果您提前终止它,它可以选择并恢复迁移。