2017-04-03 48 views
0

我试着查询DocumentDB有使用Node.js的分区键,但它无法传递时,分区键。 根据这里 - https://stackoverflow.com/a/43002819/7799859 - 我需要通过分区键是一些称为选项的对象。的Node.js - 使用湛蓝DocumentDB和readDocument(链接选项,回调)

谁能告诉我在哪儿能找到这个options.partitionKey或options.enableCrossPartitionQuery的例子吗?

这是什么选项对象?我如何在NodeJS中创建它?

这是我的代码:

find: function (querySpec, callback) 
{ 
    var self = this; 
    console.log(self.collection); 
    console.log(self.collection._self); 
    console.log(this.collectionUrl); 
    var options = { 
      partitionKey: "myCustomKey" 
    }; 
    self.client.queryDocuments(this.collectionUrl, querySpec,options).toArray(function (err, results) { 
     if (err) { 
      callback(err); 
     } else { 
      callback(null, results); 
     } 
    }); 
} 

我添加的选项变种,但是当我把它不返回任何结果。

当我不送了,这是错误:

{"code":"BadRequest","message":"Cross partition query is required but disabled. Please set x-ms-documentdb-query-enablecrosspartition to true, specify x-ms-documentdb-partitionkey, or revise your query to avoid this exception.\r\nActivityId: e4103506-d352-46d5-97d0-740d89065955"}

我使用节点版本4.2.6和documentdb的最新版本。 @ GaryLiu-MSFT这是从的package.json文件: - “documentdb”: “^ 1.10.0”,

这是我querySpec:

VAR querySpec = { 查询: 'SELECT * FROM根' , };

+0

由于您尚未共享任何代码,因此很难给予您任何帮助。你只是说“但它失败了。” *什么*失败?什么是错误信息?你的查询是什么?你的数据是什么样的?请编辑你的问题,因为现在不清楚你问的是什么。 –

+0

另外 - 关于寻找例子的部分...是脱离主题(工具/教程的建议明显是脱离主题)。网上有很多例子,包括sdk github回购本身。 –

+0

请分享您的代码。 –

回答

1

,如果你设置分区键分区键属性的名称,因为它实际上是期望字面值即查询将只针对1个分区运行的分区的1你会得到任何结果。可能有一组分区键可以使用,但我没有尝试过。

我找不到关于node.js SDK中的分区键选项的任何文档,但它确实有效。如果您只想查询所有分区,请使用:

var options = 
    { 
     enableCrossPartitionQuery: true 
    };