我有一个集合,其中的字段有时是ISODate,有时是Date。我需要将Date字段转换为ISODate,但我不确定如何过滤文档。我愿意在查询或代码中这样做。我没有找到一种ISODate来检查字段的instanceof / typeof。建议?
Item.find(function(err, docs) {
docs.forEach(function(d) {
if(d.updated instanceof ISODate) // That type does not exist mongoose/mongo Types.
...
})
});
答案 0 :(得分: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) {