使用Node.js,Mongoose和Azure Cosmos db的分区键

akr*_*spe 6 azure mongoose mongodb node.js azure-cosmosdb

在使用分片键在Azure Cosmos DB上创建新的分区集合之后,我想通过mongoose数据库适配器使用nodejs插入数据并从中恢复数据。

比方说,我的分区收集行动与片键actionId。我应该如何进行?是否需要在猫鼬查询中使用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
});
Run Code Online (Sandbox Code Playgroud)

根据猫鼬的文档,不需要做任何其他事情。但是,如果我想通过其他字段进行更新怎么办?

每个分片集合都有一个分片密钥,所有插入/更新操作中都必须存在该分片密钥。我们只需要将此模式选项设置为相同的分片键,就可以完成所有设置。