AzureCosmoDB+Azurefunctions的$sample聚合返回的结果不是预期的随机结果。
创始人
2024-09-29 14:00:37
0

问题很可能是由于CosmoDB分区键导致的。如果使用具有分区键的集合,$sample聚合操作可能会在同一分区中返回相同结果。要解决这个问题,可以使用无分区键的集合。若要使用带有分区键的集合,请将sample聚合操作与分区键组合使用,如以下示例代码所示:

module.exports = async function (context, req) {
    const { MongoClient } = require('mongodb');
    const [requiredEnv, databaseName] = ['MONGODB_CONNECTION_STR', 'your_database_name'];
    const partitionKey = 'your_partition_key';
    const collectionName = 'sample_collection';
    const size = 3;
    const client = new MongoClient(process.env[requiredEnv], { useNewUrlParser: true, useUnifiedTopology: true });
    await client.connect();
    const database = client.db(databaseName);
    const collection = database.collection(collectionName);
    const querySpec = {
        'query': `SELECT TOP 1 * FROM Root r WHERE r.${partitionKey} = @partitionKey ORDER BY 
        r._ts DESC`,
        'parameters': [
            {
                'name': '@partitionKey',
                'value': 'your_partition_value'
            }
        ]
    };
    const result = collection.aggregate([{ $match: { partitionKey: "your_partition_value" } }, { $sample: { size: size } }]);
    context.res = {
        body: result
    };
};

在上面的代码示例中,sample操作与查询语句组合使用,以便在同一分区中返回随机结果。

相关内容

热门资讯

专业讨论"衢州都莱破... 专业讨论"衢州都莱破解器"开挂(透视)辅助神器(一贯确实有挂的)-哔哩哔哩,衢州都莱破解器是用手机号...
第七分钟带你了解!闲来辅助器免... 第七分钟带你了解!闲来辅助器免费(透视挂)透视有挂外挂开挂辅助安装(一直是有挂);致您一封信;亲爱闲...
总算了解"财神十三张... 总算了解"财神十三张辅助"开挂(透视)辅助软件(一直确实有挂的)-哔哩哔哩;财神十三张辅助最新版本免...
5分钟带你了解!潮友会插件(透... 5分钟带你了解!潮友会插件(透视挂)一分钟揭秘外挂开挂辅助插件(果然有挂)>>您好:软件加薇1367...
透视教学"樱花之盛能... 透视教学"樱花之盛能不能开挂"开挂(透视)辅助神器(其实真的有挂的)-哔哩哔哩;亲,有的,ai轻松简...
8分钟带你了解!鸿狐辅助开挂透... 8分钟带你了解!鸿狐辅助开挂透视(辅助挂)总算了解外挂开挂辅助软件(果然是有挂);无需打开直接搜索加...
透视计算"衢州都莱有... 透视计算"衢州都莱有没有挂"开挂(透视)辅助软件(一直是有挂的)-哔哩哔哩;最新版2026是一款经典...
1分钟带你了解!贪玩娱乐科技(... 1分钟带你了解!贪玩娱乐科技(辅助挂)透视科技外挂开挂辅助安装(其实是有挂的)1、下载安装好贪玩娱乐...
透视真的"全游大厅拼... 透视真的"全游大厅拼十辅助"开挂(透视)辅助插件(一贯确实有挂的)-哔哩哔哩;致您一封信;亲爱全游大...
5分钟带你了解!抚州麻将牌牌局... 5分钟带你了解!抚州麻将牌牌局修改器(辅助挂)六分钟了解外挂开挂辅助下载(果然真的有挂);亲,抚州麻...