我见过使用字符串,整数时间戳和mongo日期时间对象.
最好的方法是存储本地JavaScript Date对象,这些对象映射到BSON本机Date对象.
> db.test.insert({date: ISODate()}) > db.test.insert({date: new Date()}) > db.test.find() { "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:42.389Z") } { "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:57.240Z") }
本机类型支持一系列开箱即用的有用方法,例如,您可以在map-reduce作业中使用这些方法.
如果需要,可以分别使用方法和构造函数轻松地将Date
对象转换为Unix时间戳1).getTime()
Date(milliseconds)
1)严格来说,Unix时间戳以秒为单位.自从Unix纪元以来,JavaScript Date对象以毫秒为单位进行测量.
因此,如果插入时间是您需要的,它已经存在:
登录mongodb shell
ubuntu@ip-10-0-1-223:~$ mongo 10.0.1.223 MongoDB shell version: 2.4.9 connecting to: 10.0.1.223/test
通过插入项目来创建数据库
> db.penguins.insert({"penguin": "skipper"}) > db.penguins.insert({"penguin": "kowalski"}) >
让我们把这个数据库变成现在的数据库
> use penguins switched to db penguins
获取行:
> db.penguins.find() { "_id" : ObjectId("5498da1bf83a61f58ef6c6d5"), "penguin" : "skipper" } { "_id" : ObjectId("5498da28f83a61f58ef6c6d6"), "penguin" : "kowalski" }
以yyyy-MM-dd HH:mm:ss格式获取每一行:
> db.penguins.find().forEach(function (doc){ d = doc._id.getTimestamp(); print(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds()) }) 2014-12-23 3:4:41 2014-12-23 3:4:53
如果最后一行内容让您感到困惑,我将在此处详细介绍:https://stackoverflow.com/a/27613766/445131
Protip,MongoDB是最好的数据库,因为MongoDB是网络规模的:https://www.youtube.com/watch?v = b2F -DItXtZs