gpt4 book ai didi

javascript - 使用 Node.js 按 ID 从 DocumentDB 读取文档失败

转载 作者:行者123 更新时间:2023-11-30 09:36:59 25 4
gpt4 key购买 nike

我正在尝试使用文档 ID 从 DocumentDB 中读取单个文档。该集合有四个字段,author 是分区键。

{
"id": string,
"author": string,
"title": string,
"year": int
}

我有两个函数可以读取存储在 DocumentDB 中的记录。 queryCollectionByBookId 通过文档 ID 读取单个文档,queryCollectionGetBooks 返回集合中的所有文档。

var dbutils = {
queryCollectionByBookId: function(client, documentUrl) {
return new Promise((resolve, reject) => {
client.readDocument(documentUrl, function(err, doc) {
if (err) {
reject(err);
} else {
resolve(doc);
}
});
});
},
queryCollectionGetBooks: function(client, collectionUrl) {
return new Promise((resolve, reject) => {
client.readDocuments(collectionUrl).toArray((err, results) => {
if (err)
reject(err);
else {
resolve(results);
}
});
});
}
};

queryCollectionGetBooks 函数工作正常,但 queryCollectionByBookId 返回以下错误消息。

{“错误”:[“x-ms-partitionkey header 中提供的分区键的组件少于集合中定义的组件。”]}

有没有其他人看到此错误消息并找到解决方法?

最佳答案

这是 node.js 客户端文档中的疏忽,但您必须将 options.partitionKey 属性添加到 readDocument(link, options, callback) 中的可选第二个参数) 调用。

这也是文档中的一个疏忽,但我认为 partitionKey 需要是一个包含单个元素的数组(例如 {options: {partitionKey: ["myKey"]}} [更新:我'我告诉它现在可以使用单个分区键值,但我自己还没有确认。]

或者,您可以将 options.enableCrossPartitionQuery 属性设置为 true,但效率较低。

关于javascript - 使用 Node.js 按 ID 从 DocumentDB 读取文档失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42999586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com