我将CosmosDB Node.js SDK从2.1.5升级到3.5.2,以下代码不再起作用。
client.items.query(myQuery, { partitionKey: "MyPartitionKey" }).toArray()
我将代码更改为以下代码,但是它仍然无法转换(打字稿),显然原因是
FeedOptions
不再包含partitionKey
属性!client.items.query(myQuery,{ partitionKey: "MyPartitionKey" }).fetchAll()
我在互联网上查找了它,但找不到最新的示例。
任何想法如何解决这个问题?
最佳答案
我找不到来自MS或github源代码的任何最新示例,这确实具有挑战性。
cosmos db节点sdk v3中的FeedOptions类中不再有任何partitionkey
属性。在对FeedOptions
的github源代码进行深入研究之后,我发现它扩展了另一个接口SharedOptions
:
它包含initialHeaders
属性,因此我想我们可以在REST API Header Lists之后设置分区键值。
无论如何,请参考我的工作代码:
const feedOptions = {
initialHeaders: {"x-ms-documentdb-partitionkey": '["a"]'}
};
const queryIterator = await container.items.query(querySpec,feedOptions);
while (queryIterator.hasMoreResults()) {
console.log(await queryIterator.fetchNext());
}
当然,您可以将其替换为
.fetchAll()
方法。