我使用猫鼬模型来保存我的记录,包括创建日期和更新日期。这里是我的模型模式:Mongoose使用UTC时间保存和检索日期,更改为服务器时区
var CasesModelSchema = new mongoose.Schema(
{
caseId: Number,
sessionId: String,
createdAt: {type: Date},
updatedAt: {type: Date, default: Date.now},
docs: mongoose.Schema.Types.Mixed
},
{
collection: 'cases'
}
);
我面临的问题是,updatedAt
场保存日期时间为ISODate("2017-04-24T12:40:48.193Z")
,这是UTC的,但我的服务器的时区为Asia/Calcutta
。由于我需要根据服务器的时间进行查询,因此我需要将日期时间保存在我的首选时区中。
这是我需要(为最近10天得到的所有数据)执行
var today = moment(moment().format('YYYY-MM-DD')).toDate();
var tenDaysDate = moment(moment().format('YYYY-MM-DD')).add(-10, 'days').toDate();
CasesModel.findOne({updatedAt: {$gte: tenDaysDate, $lt: today}},
function(err, caseData){
cl(caseData, __line);
});
我要的是做一个查询来获取过去10天内的所有更新的记录的查询时,正好从10 days ago午夜(Asia/Calcutta
时区)至今天午夜(Asia/Calcutta
时区)。我怎么做?
感谢您的回答。我知道在数据库中存储时区中性时间是正确和可扩展的方法,但就我的知识而言,您能告诉我如何将我的本地时区保存在dB中? – gaganshera
@gaganshera Mongo中没有时区支持。看到这个Jira票:https://jira.mongodb.org/browse/SERVER-6310 – rsp