2016-12-14 156 views
0

我使用貓鼬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 

我嘗試這樣做:

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') 
}); 

但由於new Date()會回報,這將只是時間00:00:00更新的所有字段日期時間。

我該如何在沒有時間的情況下搜索某個日期的所有字段?如果有必要,我可以改變模型。

回答

4

你可以在一系列的日期之間做到這一點。對於較低範圍使用$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') 
}); 

2016-12-14 00:00:00.000Z和2016-12-14 23:59:59.999Z之間的所有文件都會更新。

+0

哦,我不知道'$ gte'和'$ lt'。這太酷了。謝謝soooo @Ron! – John

+1

歡迎您,很高興它幫助:) –

+0

你知道我怎麼能找到我的數據庫中的雙字段?我試過這個,但是它不會返回任何東西:'db.getCollection('Model')。find({longitude:354.049987792969})' – John