我正在插入带有以下时间戳的Mongo文档:
val format = new java.text.SimpleDateFormat("yyyyMMddHHmmss")
format.format(new Date()).toLong
以下是Mongo的shell中的部分:
"{Timestamp" : NumberLong("20130919161948")}"
根据一些测试,在我看来,我只需按时间戳比较2个文档,只需检查>
或<
yyyyMMddHHmmss
格式。
请告诉我这个时间戳是否适合Mongo。我可以用它查询吗?
答案 0 :(得分:2)
Mongo不会将此理解为时间戳,而是作为一个数字。当您使用从年到秒的格式设置日期时,您将能够使用&gt;查询mongo。或者&lt;知道它是在之前还是之后。
但是,如果您想将mongo视为日期,则需要使用相应的bson日期格式。通过让mongo将其视为日期,您可以使用所有Mongo日期操作,例如提取年份,星期几等。read more
如果您使用的是casbah和Joda,则可以通过显式调用启用序列化和反序列化:
import com.mongodb.casbah.conversions.scala._
RegisterJodaTimeConversionHelpers()
了解更多here。
答案 1 :(得分:0)
java.util.Date
为supported。
使用NumberLong表示时间戳允许您进行范围查询,但使用BSON date type,聚合框架中的date operation变得可能,这更加强大。