У меня есть приложение node-express
, которое в настоящее время использует Mongoose
для подключения к MongoDB, и пытаюсь перенести его в Azure Cosmos DB.
Когда я просто разрешаю Mongoose
создавать базу данных, приложение работает нормально, однако база данных создается по индивидуальной цене сбора RU.
Если я создаю новую базу данных с включенной общей пропускной способностью и пытаюсь ее использовать, я получаю сообщение об ошибке Shared throughput collection should have a partition key
Я попытался обновить схему сбора, добавив в нее ключ шарда, например:
const mongoose = require('mongoose');
module.exports = function() {
const types = mongoose.Schema.Types;
const messages = new mongoose.Schema({
order: { type: types.ObjectId, required: true, ref: 'orders' },
createdAt: { type: Date, default: Date.now },
sender: { type: types.ObjectId, required: true, ref: 'users' },
recipient: { type: types.ObjectId, ref: 'users' },
text: { type: String, required: true },
seen: { type: Boolean, default: false },
}, { shardKey: { order: 1 } });
return mongoose.model('messages', messages);
};
Однако это не работает.
Есть идеи о том, как создать / использовать ключ раздела?В качестве альтернативы база данных небольшая, поэтому, если ее можно удалить, для ключа раздела это тоже будет хорошо.