Mongodb 使用映射从字符串更改日期

Mongodb 使用映射从字符串更改日期,mongodb,mongoose,Mongodb,Mongoose,我以前问过一个关于将字符串转换为日期的问题,得到了一个很好的答案。唯一的问题是,当日期为空->''时,会出现以下错误: { "message" : "an incomplete date/time string has been found, with elements missing: ' '", "ok" : 0, "code" : 241, "codeName" : "ConversionFailure", "name" : "MongoError"

我以前问过一个关于将字符串转换为日期的问题,得到了一个很好的答案。唯一的问题是,当日期为空->''时,会出现以下错误:

{
    "message" : "an incomplete date/time string has been found, with elements missing: ' '",
    "ok" : 0,
    "code" : 241,
    "codeName" : "ConversionFailure",
    "name" : "MongoError"
}
我使用的公式(取自问题)是:

我已经试着加进去了

{ $unwind: "$cases" },
{ $match: { 'cases.endDate': {'$ne' : ''}}},
但这给了我一个错误,我说:

{
    "message" : "input to $map must be an array not object",
    "ok" : 0,
    "code" : 16883,
    "codeName" : "Location16883",
    "name" : "MongoError"
}
任何帮助都将不胜感激


谢谢

您必须在
$REWIND
之后执行
$group
,才能将
$cases
恢复为数组形式

{ $unwind: "$cases" },
{ $match: { 'cases.endDate': {'$ne' : ''}}},
{ $group: {
  _id:$null,
  cases:{$push:'$cases'}
} },
{ $unwind: "$cases" },
{ $match: { 'cases.endDate': {'$ne' : ''}}},
{ $group: {
  _id:$null,
  cases:{$push:'$cases'}
} },