在Mongo中查找ISODate字段的文档

时间:2015-09-23 23:32:21

标签: javascript mongodb mongodb-query

我有一个集合,其中的字段有时是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.
      ...
  })
});

1 个答案:

答案 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) {