2016-01-07 34 views
1

我有一個文檔集合。它有timestamp字段,主要是Date,在少數情況下它是一個字符串。可以用mongodb彙總跳過無效文檔

如果我使用時間運營商(aggregate命令),它拋出一個錯誤的時間戳字段運行聚集: can't convert from BSON type String to Date

有沒有辦法跳過包含字符串的時間戳,並繼續聚合文件?

的MongoDB 3.0.4

+0

一般來說,你應該儘量保持數據類型集合中的文檔之間保持一致。我會建議一個長期的策略來糾正數據類型(如果可能的話),只是爲了您自己的理智。 –

+0

你是對的,數據應該是一致的。這種措施是萬一(舊代碼使用字符串 - 新的使用日期) – taminov

回答

3

可以使用$type只匹配具有有效日期字段文件:

db.collection.aggregate([ 
    {$match: {dateField: {$type: 9} } } 
]) 
+0

是,被困在嘗試捕獲/錯誤處理標誌的心態... – taminov