Ожидается "[" или AggregationStage, но найдено "{". Агрегация MongoDB не позволяет мне использовать $ toLower внутри $ eq - PullRequest
1 голос
/ 24 января 2020

Я написал конвейер MongoDB, в котором есть этот код:

  {
    $eq: [
      {
        "$toLower": "HELLO"
      },
      "hello"
    ]
  }

И вот его скриншот в Mon go Compass

mongo compass

Я ожидаю, что он просто вернет true и "$ match" все (пока). В конце концов я поменяю "HELLO" с именем поля et c.

Кто-нибудь знает, почему я получаю эту ошибку?

1 Ответ

1 голос
/ 24 января 2020

$ match не принимает необработанные выражения агрегирования . Вместо этого используйте выражение запроса $ expr , чтобы включить выражение агрегирования в $ match.

https://docs.mongodb.com/manual/reference/operator/aggregation/match/index.html#pipe ._ S_match

$expr: {
    $eq: [
      {
        $toLower: "HELLO"
      },
      "hello"
    ]
}

Совокупная команда Метод поиска

...