Модуль миграции CosmosDB — не удается прочитать коллекции

#azure-cosmosdb #azure-cosmosdb-mongoapi

#azure-cosmosdb #azure-cosmosdb-mongoapi

Вопрос:

Я экспортирую базу данных из mlabs в CosmosDB.

после сбоя с другими методами я, наконец, экспортировал через mongodump и импортировал в CosmosDB. Я могу читать коллекции в studio 3t.

но при подключении в Express / mongoose через ConnectionString все коллекции возвращаются [] .

Я добавил свой IP-адрес в брандмауэр.

Это не код, когда я указываю на базу данных mlab, все извлекается правильно.

чего мне не хватает в CosmosDB?

Ответ №1:

проблема также находится здесь: https://learn.microsoft.com/en-us/answers/questions/153583/cosmosdb-migration-mern-can39t-read-collections.html?childToView=154602#answer-154602

в Azure сгенерированные строки подключения не совсем соответствуют тому, что отправлено упражнением, отправленным Kaylan. и я также не устанавливал некоторые параметры. без параметров я получаю сообщение «Пароль содержит недопустимый неэкранированный символ»

строка первичного подключения и строка вторичного подключения добавляют следующее:

 amp;retrywrites=false
amp;maxIdleTimeMS=120000
amp;appName=@<appName>@
  

как только я удалил это из строки подключения и использовал параметры, все заработало.
мой последний пример подключения:

 //pulled from config for clarity
const config = {
    'database': process.env.MONGODB_URI || 'mongodb://<user>:<password>@<db>.mongo.cosmos.azure.com:10255/<dbname>?ssl=trueamp;replicaSet=globaldb'
}

mongoose.connect(config.database, //with  user and pass inside
    {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        retryWrites: false,
        useFindAndModify: false,
        useCreateIndex: true
    })
    //.then(() => console.log('Connection to CosmosDB successful'))
    .catch((err) => console.error('CosmosDB error:', err))