以字符串或日期对象的形式返回日期。
使用new Date(),插入的是一个isodate类型;而使用Date()插入的是一个字符串类型。
那isodate是什么日期类型的?我们看这2个值,它比字符串大概少了8小时。这是由于mongo中的date类型以UTC(Coordinated Universal Time)存储,就等于GMT(格林尼治标准时)时间。而我当前所处的是+8区,所以mongo shell会将当前的GMT+0800时间减去8,存储成GMT时间。
- Date()在mongo shell中返回当前日期作为字符串。
- new Date()将当前日期作为日期对象返回。mongo shell将日期对象包装为ISODate helper。ISODate在UTC。
您可以通过将日期()方法传递给日期()方法来指定一个特定的日期。例如:
new Date("<YYYY-mm-dd>")它返回ISODate的
指定日期的等日期。
new Date("<YYYY-mm-ddTHH:MM:ss>")它指定了本地datetime中的datetime,并在UTC中返回指定的datetime的等日期。
new Date("<YYYY-mm-ddTHH:MM:ssZ>")它指定UTC中的datetime,并在UTC中返回指定的日期时间的ISODate。
1、如果在产品集合中不存在id等于1的文档,下面的操作将向字段dateAdded添加当前日期插入:
db.products.update(
{ _id: 1 },
{
$set: { item: "apple" },
$setOnInsert: { dateAdded: new Date() }
},
{ upsert: true }
)
2、插入
db.tianyc04.insert({mark:1, mark_time:new Date()})
> db.tianyc04.insert({mark:2, mark_time:Date()})