alt*_*alt 5 mongoose node.js azure-cosmosdb azure-cosmosdb-mongoapi
我有一个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);
};
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用。
关于如何创建/使用分区键的任何想法?另外,数据库很小,因此,如果有可能消除对分区键的要求,那也可以。
现在我对这个问题没有确切的答案,所以不需要接受这个,除非你觉得它是正确的。
到目前为止,我发现的最佳解决方案是,这是由于在 Azure 控制台中创建数据库时检查了“配置吞吐量”。如果您删除并重新创建数据库时未选中此框(它位于数据库名称输入的正下方),那么您应该不会再遇到此错误。