MongoDB компас - NaN буквальный приводит к ошибке? - PullRequest
0 голосов
/ 27 апреля 2019

Я использую агрегацию MongoDB для суммирования некоторых записей. Один из них имеет значение NaN, и, таким образом, окончательное значение становится NaN. Я написал $project шаг для преобразования NaN в 0. Однако использование литерала NaN приводит к ошибке Expected "[" or AggregationStage but "{" found.

Этот шаг $project выдает ошибку:

{
  "hardwareItems": 1,
  "subscriptionItems": 1,
  "sellerName": 1,
  "status": 1,
  "sum": {
    $cond: [{ $eq: ["sum", NaN] }, 0, "$sum"]
  },
  "seller": 1,
  "subscriptionCount": {
    "$size": "$subscriptionItems"
  }
}

Однако, если вместо этого использовать:

$cond: [{ $eq: ["sum", "NaN"] }, 0, "$sum"]

Если NaN становится "NaN", ошибка исчезает.

Как бы мы использовали NaN литералы в MongoDB Compass?

...