Microsoft Azure文档BadRequestException指定了一个无效查询,其中包含针对未进行范围索引的路径的过滤器。请考虑在请求中添加允许扫描标头。
我的查询是:
SELECT c.id FROM users c WHERE (c.lat < 29.89)
OVER ??文档数量(因为没有办法获取DocumentDB集合中的文档数量)
答案 0 :(得分:3)
如果你看一下这里的博文: http://azure.microsoft.com/blog/2015/01/27/performance-tips-for-azure-documentdb-part-2/
索引策略提示#3:为所有路径指定范围索引路径类型 用于范围查询
DocumentDB目前支持两种索引路径类型:Hash和Range。 选择Hash的索引路径类型可实现高效的相等性 查询。选择Range的索引类型可启用范围查询(使用
>, <, >=, <=)
。
它在C#中给出了一个示例,用于添加范围索引以使路径具有可比性,但node.js library.
中有类似的功能创建集合时,可以通过body参数传递IndexingPolicy。 IndexingPolicy
有几个成员。其中一个是IncludedPaths,您可以在其中定义索引。
var policy = {
Automatic: true,
IndexingMode: 'Lazy',
IncludedPaths: [
{
IndexType: "Range",
Path: "path to be indexed (c.lat)",
NempericPrecission: "1",
StringPrecission: "1"
}
],
ExcludedPaths: []
}
client.createCollection(
'#yourdblink',
{
id: 10001,
indexingPolicy: policy
});
答案 1 :(得分:2)
可以在新的Azure门户(https://portal.azure.com),(您的DocumentDB资源) - &gt;下更改策略。设置 - &gt;索引政策。