縹緲止盈
2023-07-06 17:46:37
我已閱讀了有關(guān) CosmosDB Read Item 方法提供的所有類型的文檔。但這似乎不起作用。const item = container.item(id, undefined);console.log("Read item '" + item.id + "'");const { resource: readDoc } = await item.read();console.log("item with id found: '", readDoc);我傳遞的ID是“1”,集合中有一條id為“1”的記錄。它總是返回為未定義。有人已經(jīng)知道這是如何工作的嗎?這是我引用的文檔。(按 ID 讀取項目:Item.read) https://learn.microsoft.com/en-us/azure/cosmos-db/sql-api-nodejs-samples
2 回答

千巷貓影
TA貢獻1829條經(jīng)驗 獲得超7個贊
看來您傳遞了錯誤的密鑰item("id","key")
。當(dāng)您undifined
作為此方法的鍵傳遞時,這意味著您沒有像此屏幕截圖一樣定義 id 為“1”的文檔的分區(qū)鍵值。
我猜您的 id 為“1”的文檔具有分區(qū)鍵值,因此 Cosmos DB 無法找到 id 為“1”并且沒有分區(qū)鍵值的文檔。如果是這樣,您需要將分區(qū)鍵值傳遞給item("id","key").
例如,我有一個如下所示的文檔,我的代碼應(yīng)該是這樣的:
const item = container.item("1", "dog");
console.log("Read item '" + item.id + "'");
const { resource: readDoc } = await item.read();
console.log("item with id found: '", readDoc);

搖曳的薔薇
TA貢獻1793條經(jīng)驗 獲得超6個贊
Azure 文檔是錯誤的(或者至少令人難以置信的混亂)。
兩個字符串必須相同。
例如
Cosmos 數(shù)據(jù)庫條目:
{ "id": "123456", "name": "John Smith" }
分區(qū)鍵:/id
const { resource } = await container .item("123456", "123456") .read();
或者
const { resource } = await container .item("123456", "123456") .delete();
希望有幫助。
添加回答
舉報
0/150
提交
取消