使用带有 Azure DocumentDB 的 nodeJS 批量导入。分区键问题

Bulk Import using nodeJS with Azure DocumentDB. Partition Key issue

我正在尝试使用 Node.js 将大量数据批量导入到 DocumentDB 中。我已经创建了推荐的存储过程(已在此处和 MSDN 上多次发布的存储过程)。但是,当我尝试通过 Node 执行它时,我得到以下响应:"Requests originating from scripts cannot reference partition keys other than the one for which client request was submitted."

Collection 上的 partitionKey 是“/id”,我在 Node 中的请求是这样的:

client.executeStoredProcedure('dbs/blah/blah/sprocs/blah', [docs], {partitionKey: '/id'}, ...);

我找不到关于此的任何简明文档,因为它专门与 Node 相关。有没有人遇到过这个问题,有解决办法吗?我对我犯了一个愚蠢的错误的想法完全持开放态度,但这是我的第一个牛仔竞技表演,可以这么说,与 DocumentDB。谢谢大家

我怀疑您尝试导入的数据集中有一个 /id 不是您指定的数据。如果是这样的话,我可以想到两个选择:

  1. 不使用 sproc 并从您的 node.js 脚本一次加载它们。我建议使用 async.js 函数之一或其他一些并行化库中的等效函数,这样您就可以并行执行许多请求。

  2. 您可以将数据客户端/id分开,然后为每个集合调用sproc。