2015-09-23 32 views
0

我有一個集合,其字段有時是ISODate,有時是Date。我需要將日期字段轉換爲ISODate,但我不確定如何過濾文檔。我願意在查詢或代碼中這樣做。我沒有找到一種ISODate來檢查字段的instanceof/type。建議?在Mongo中查找ISODate字段的文檔

Item.find(function(err, docs) { 
    docs.forEach(function(d) { 
    if(d.updated instanceof ISODate) // That type does not exist mongoose/mongo Types. 
     ... 
    }) 
}); 
+0

你能發表一個'docs'的例子嗎? –

回答

1

您想要$type運算符。它檢查並根據BSON類型的屬性,這對於一個Date是相匹配的類型9:

Item.find({ "updated": { "$type": 9} },function(err, docs) { 

當然,如果他們不是真正日期,但「串」,然後使用適當的BSON類型爲:

// Find strings in updated. 
Item.find({ "updated": { "$type": 2} },function(err, docs) { 
+0

非常好。我如何將字符串日期轉換爲ISODate? – cyberwombat

+0

@Yashua取決於字符串的樣子。通常'new Date()'會做。沒有像'ISODate'這樣的東西,它只是在mongodb shell中的表示。如果您有其他問題,請[請提出另一個問題](https://stackoverflow.com/questions/ask)。 –

相關問題