我有一个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);
};
但是,这不起作用。
关于如何创建/使用分区键的任何想法?或者,数据库很小,因此如果可以删除对分区键的要求,那也很好。