使用分片键在Azure Cosmos DB上创建新的分区集合后,我想通过mongoose数据库适配器使用nodejs插入和恢复数据。
假设我的分区集合是 action ,其中包含分片键 actionId 。我该怎么办?需要在mongoose查询中使用 partitionKey 键或 enableCrossPartitionQuery 键来攻击正确的分片?
const mongoose = require('mongoose');
const actionModel = new mongoose.Schema({
actionId: { type: Number, required: true, unique: true },
name: { type: String, required: true, unique: true },
}, {
shardKey: { actionId: 1 },
});
actionModel.create({ actionId, name}, (err, response) => {
//logic
});
actionModel.findOne({ actionId }, (err, response) => {
//logic
});
actionModel.findOneAndUpdate({ actionId }, data, { new: true, lean: true }, (err, response) => {
//logic
});
根据Mongoose文档,无需再做任何事情。但是如果我想通过另一个领域进行更新呢?
每个分片集合都有一个必须存在的分片键 所有插入/更新操作。我们只需要设置此架构选项 使用相同的分片键,我们将全部设置。