Описание:
Я установил новую базу данных Cosmos DB с выделенной пропускной способностью, чтобы разделить единицы измерения в секунду для всех коллекций и минимизировать затраты.
Мой API для доступа к Cosmos - это Node.JS с Express и Mongoose.
База данных теперь настроена с 1 коллекцией с именем группы с ключом раздела / ключом сегмента раздел
Раньше я без проблем использовал Mongoose с Cosmos DB, но при попытке в этом режиме получаю следующее сообщение об ошибке:
{
"_t": "OKMongoResponse",
"ok": 0,
"code": 2,
"errmsg": "Shared throughput collection should have a partition key\r\nActivityId: 9217017f-0000-0000-0000-000000000000, Microsoft.Azure.Documents.Common/2.4.0.0",
"$err": "Shared throughput collection should have a partition key\r\nActivityId: 9217017f-0000-0000-0000-000000000000, Microsoft.Azure.Documents.Common/2.4.0.0",
"name": "MongoError"
}
Я много искал ответы, но не вижу, чтобы кто-нибудь еще сталкивался с такой же проблемой в той же среде.
Окружающая среда:
- Версия узла: v10.16.0
- Версия Mongoose: 5.6.6
- Экспресс-версия: 4.17.1
Тестирование:
Я пробовал настроить модель мангуста следующим образом:
var schema = mongoose.Schema({
name: String,
}, { shardKey: { partition: "1" }})
А вот так:
var schema = mongoose.Schema({
name: String,
partition: { type: String, default: "1"},
})
Я также попытался отправить ключ раздела в качестве значения
{
"name": "Test",
"partition": "1"
}
Если я запустил указанный выше JSON как новый документ в обозревателе данных портала Azure, я смогу добавить этот документ.
Кто-нибудь знает, поддерживает ли Mongoose Cosmos DB в подготовленном режиме пропускной способности? И если он поддерживается, могу ли я получить пример того, как настроить мангуста / модель, чтобы заставить ее работать.
Спасибо