Joh*_*ohn 1 javascript date mongoose mongodb node.js
我正在使用猫鼬4.7.x和mongodb 3.2。我想搜索所有日期而没有时间。例如update all obj with this date 2016-12-14。
在我的数据库中,我有多个日期时间,如下所示:
2016-12-14 00:00:00.000Z
2016-12-14 00:00:00.000Z
2016-12-14 01:00:00.000Z
2016-12-14 01:00:00.000Z
2016-12-14 02:00:00.000Z
2016-12-14 02:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
我尝试了这个:
var query = {date: new Date('2016-12-14')};
var doc = {name: 'TEST'};
var options = {multi: true};
Model.update(query, doc, options, function(err, result){
console.log('All data updated')
});
Run Code Online (Sandbox Code Playgroud)
但这只会更新时间为00:00:00的所有字段,因为new Date()它将返回日期时间。
我该如何没有时间搜索具有特定日期的所有字段?如果有必要,我可以更改模型。
您可以在一系列日期之间进行操作。使用$gte对于较低范围内,并且$lt对于较高的一个(它是第二天),以保持它在从00:00:00小时选择所述第二天。
var query = {
date: {
$gte: new Date('2016-12-14'),
$lt: new Date('2016-12-15')
}
};
var doc = {name: 'TEST'};
var options = {multi: true};
Model.update(query, doc, options, function(err, result){
console.log('All data updated')
});
Run Code Online (Sandbox Code Playgroud)
2016-12-14 00:00:00.000Z和2016-12-14 23:59:59.999Z之间的所有文档都将更新。