Doctrine2 mongodb和时间戳
我使用条令2向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"
{
"_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脚本应该可以很好地完成这项工作,并且应该很容易编写,如果您提前终止它,它可以选择并恢复迁移。