Агрегации работают в автономном режиме, но не в выделенном кластере

#mongodb #mongodb-query

#mongodb #mongodb-запрос

Вопрос:

В настоящее время я пытаюсь агрегировать с MongoDB, используя json, найденный здесь :http://media.mongodb.org/zips.json

Итак, я импортировал его тысячи раз, а затем попробовал эту команду :

 db.CO_villes.aggregate({$group:{_id:"$state",population:{$sum:"$pop"}}})
  

И я получил эту ошибку :

 2019-04-24T13:49:19.579 0000 E QUERY    [js] Error: command failed: {
    "ok" : 0,
    "errmsg" : "unrecognized field 'mergeByPBRT'",
    "code" : 9,
    "codeName" : "FailedToParse",
    "operationTime" : Timestamp(1556113758, 2),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1556113758, 2),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
} : aggregate failed :
  

У меня есть разделенный кластер с 3 экземплярами MongoDB.
Я тоже могу столкнуться с этой проблемой, когда пытаюсь получить индексы с помощью «Compass».

Я попытался экспортировать данные и удалить поле id с помощью команды «sed» (потому что не все мои идентификаторы были с «ObjectId») и импортировать их, но я все еще сталкиваюсь с этой проблемой.

Ответ №1:

Я решил свою проблему, создав кластер 3.6 вместо 4.0.6. Поэтому я думаю, что это ошибка, связанная с новыми версиями MongoDB.

Комментарии:

1. Та же проблема!!! это работает в кластере версии 4.0.5, я думаю, что эта ошибка началась с версии 4.0.6.

2. Рад слышать, что вы столкнулись с той же проблемой, а затем узнали, что это ошибка, связанная с версией 4.0.6. Спасибо

3. Я считаю, что эта проблема возможна, только если ваши сегментные mongod серверы используют 4.0.6 или более раннюю версию, и вы обновили свои mongos до 4.0.7 . Если все компоненты вашего кластера определенно работают под управлением одной и той же версии mongod и mongos , было бы лучше опубликовать новый вопрос на DBA StackExchange с более подробной информацией о вашей среде, включая конкретные mongod и mongos используемые версии.