从DocDB中的每个类别中选择随机N条记录

时间:2017-03-01 11:02:53

标签: python-2.7 azure azure-cosmosdb

我试图撰写一个查询,从而为每个类别带来N条记录。

假设文档具有以下结构:

  • ID - 唯一ID
  • 类别 - 字符串
  • 类型 - 字符串

现在我正在使用此查询:

select top 20 * from c where c.category in ('category1','cateogory2') where type='type1'

我希望能够从满足where子句的每个类别中获取10条记录。

**我使用的是pydocumentdb

1 个答案:

答案 0 :(得分:1)

根据我的理解,似乎对您的需求的简单查询如下所示。

select top 10 * from c where c.category = 'category1' and type='type1'
 union 
select top 10 * from c where c.category = 'category2' and type='type1'

但是到目前为止,Azure DocumentDb并不支持union操作。

根据我的经验,可能的方法是创建一个存储过程来为两个使用不同参数值查询集合的结果集实现union操作,然后通过pydocumentdb调用存储过程。请参阅官方教程DocumentDB server-side programming: Stored procedures, database triggers, and UDFs以了解更多详细信息。