Я установил экземпляр CosmosDB и поместил один тестовый объект в контейнер products
. Ключ разделения установлен на /price
.
{
"id": "1234",
"name": "A DB product",
"price": 12,
"_rid": "RsMLAID7jXIBAAAAAAAAAA==",
"_self": "dbs/RsMLAA==/colls/RsMLAID7jXI=/docs/RsMLAID7jXIBAAAAAAAAAA==/",
"_etag": "\"270011a1-0000-0200-0000-5e8c61ef0000\"",
"_attachments": "attachments/",
"_ts": 1586258415
}
Если я прочитаю все элементы контейнера, я вернусь к этому конкретному элементу:
const client = new CosmosClient(process.env.CosmosDbConnectionString);
const database = client.database("maindb");
const container = database.container("products");
const items = await container.items.readAll().fetchAll()
Это то, что я вижу в отладчик: ![enter image description here](https://i.stack.imgur.com/EF1b2.png)
Если я попытаюсь получить тот же элемент по id, элемент не будет найден:
const item1 = await container.item("1234").read()
Это приводит к:
![enter image description here](https://i.stack.imgur.com/Hp4LN.png)
Единственный способ заставить его работать - изменить код чтения на:
const item1 = await container.item("1234", 12).read()
Это означает, что я должен указать точное значение ключа раздела, но что, если я хочу запросить просто по идентификатору?