2016-12-13 84 views
3

我想从expressjs插入一个日期值到mongodb。我正在使用mongodb本地驱动程序。从nodejs插入日期值到mongodb

问题是,当我使用创建一个对象并使用该变量插入它时,日期被插入为字符串。以下是DB-

{ 
    "_id" : ObjectId("584f9b6e8c06a5717d10ee59"), 
    "date" : "2016-12-13T06:55:24.698Z", 
} 

的样品 -

var expenseTest = {date: new Date()}; 

database.collection('expensemaster').insert(expenseTest, function(err, r){ 
    console.log("query executed"); 
}); 

这里的值,但是当我在插入查询直接插入对象的日期返回为ISODate(日期)。

这里是DB-

{ 
    "_id" : ObjectId("584fba82566fc8787e75a7ed"), 
    "date" : ISODate("2016-12-13T09:08:18.441Z") 
} 

的样品 -

database.collection('expensemaster').insert({date: new Date()}, function(err, r) { 
    console.log("query executed"); 
}); 

值我的问题是 - 如果我不得不使用insertMany插入有日期对象的数组的一个领域。

如何在数据库中获取ISODate(日期)的日期。

回答

2

当你插入的不是调用

database.collection('expensemaster').insert({date: new Date()}, function(err, r) { 
console.log("query executed"); 
}); 

使用本:

database.collection('expensemaster').insert({date: new Date(Date.now()).toISOString()}, function(err, r) { 

console.log("query executed"); 
}); 

这将创建一个ISO日期为您插入。我使用Date.now(),但你可以在那里插入你想要的任何日期。下面是一个什么样的.toISOString确实

console.log(new Date(Date.now()).toISOString());

+1

感谢@ Dennington熊为您输入控制台日志,但我问是相反的。我想在ISODate(日期)DB中的日期。这里的问题是如果我有ex- [{date:new Date()},{ - },{ - }]的对象数组,我想直接将此数组传递给insertMany查询,那么如何获得ISODate (日期) –