Items class
用于创建新项和读取/查询所有项的作
请参阅 项,了解如何读取、替换或删除现有容器;使用 .item(id)
。
属性
container |
方法
batch(Operation |
对项执行事务批处理作。 Batch 采用基于作执行的作类型的作数组。 Batch 是事务性的,如果一个作失败,则会回滚所有作。 选项包括:Create、Upsert、Read、Replace 和 Delete 用法示例:
|
bulk(Operation |
对项执行批量作。 大容量采用基于作执行的作类型的作数组。 选项包括:Create、Upsert、Read、Replace 和 Delete 用法示例:
|
change |
创建一个 |
change |
创建一个 示例 从更改源的开头读取。
|
change |
创建一个 |
change |
创建一个 |
create<T>(T, Request |
创建项。 SDK 不一定强制实施任何提供的类型 T。 可能会获取或多或少的属性,并且由逻辑来强制实施。 JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。 示例 创建项。
|
execute |
对项执行批量作。 示例
|
get |
返回迭代器以循环访问更改页。 返回的迭代器可用于提取单个分区键、源范围或整个容器的更改。 示例
|
get |
查询加密容器中的所有项目。 示例 将所有项读取到数组。
|
query(string | Sql |
查询所有项。 示例 将所有项读取到数组。
|
query<T>(string | Sql |
查询所有项。 示例 将所有项读取到数组。
|
read |
读取所有项。 JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。 示例 将所有项读取到数组。
|
read |
读取所有项。 SDK 不一定强制实施任何提供的类型 T。 可能会获取或多或少的属性,并且由逻辑来强制实施。 JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。 示例 将所有项读取到数组。
|
read |
创建一个 |
read |
创建一个 示例 从更改源的开头读取。
|
read |
创建一个 |
read |
创建一个 |
upsert(unknown, Request |
向上插入项。 JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。 |
upsert<T>(T, Request |
向上插入项。 SDK 不一定强制实施任何提供的类型 T。 可能会获取或多或少的属性,并且由逻辑来强制实施。 JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。 示例 向上插入项。
|
属性详细信息
container
方法详细信息
batch(OperationInput[], PartitionKey, RequestOptions)
对项执行事务批处理作。
Batch 采用基于作执行的作类型的作数组。 Batch 是事务性的,如果一个作失败,则会回滚所有作。 选项包括:Create、Upsert、Read、Replace 和 Delete
用法示例:
import { CosmosClient, OperationInput } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
// The partitionKey is a required second argument. If it’s undefined, it defaults to the expected partition key format.
const operations: OperationInput[] = [
{
operationType: "Create",
resourceBody: { id: "doc1", name: "sample", key: "A" },
},
{
operationType: "Upsert",
resourceBody: { id: "doc2", name: "other", key: "A" },
},
];
await container.items.batch(operations, "A");
function batch(operations: OperationInput[], partitionKey?: PartitionKey, options?: RequestOptions): Promise<Response<OperationResponse[]>>
参数
- operations
作列表。 限制 100
- partitionKey
- PartitionKey
- options
- RequestOptions
用于修改请求
返回
Promise<Response<OperationResponse[]>>
bulk(OperationInput[], BulkOptions, RequestOptions)
对项执行批量作。
大容量采用基于作执行的作类型的作数组。 选项包括:Create、Upsert、Read、Replace 和 Delete
用法示例:
import { CosmosClient, OperationInput } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
// partitionKey is optional at the top level if present in the resourceBody
const operations: OperationInput[] = [
{
operationType: "Create",
resourceBody: { id: "doc1", name: "sample", key: "A" },
},
{
operationType: "Upsert",
partitionKey: "A",
resourceBody: { id: "doc2", name: "other", key: "A" },
},
];
await container.items.bulk(operations);
function bulk(operations: OperationInput[], bulkOptions?: BulkOptions, options?: RequestOptions): Promise<BulkOperationResponse>
参数
- operations
作列表。 限制 100
- bulkOptions
- BulkOptions
用于修改批量行为的可选选项对象。 传递 { continueOnError:false } 以在失败时停止执行作。 (默认值为 true)
- options
- RequestOptions
用于修改请求。
返回
Promise<BulkOperationResponse>
changeFeed(ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
function changeFeed(changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<any>
参数
- changeFeedOptions
- ChangeFeedOptions
返回
ChangeFeedIterator<any>
changeFeed(PartitionKey, ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
示例
从更改源的开头读取。
const iterator = items.readChangeFeed({ startFromBeginning: true });
const firstPage = await iterator.fetchNext();
const firstPageResults = firstPage.result
const secondPage = await iterator.fetchNext();
function changeFeed(partitionKey: PartitionKey, changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<any>
参数
- partitionKey
- PartitionKey
- changeFeedOptions
- ChangeFeedOptions
返回
ChangeFeedIterator<any>
changeFeed<T>(ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
function changeFeed<T>(changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<T>
参数
- changeFeedOptions
- ChangeFeedOptions
返回
changeFeed<T>(PartitionKey, ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
function changeFeed<T>(partitionKey: PartitionKey, changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<T>
参数
- partitionKey
- PartitionKey
- changeFeedOptions
- ChangeFeedOptions
返回
create<T>(T, RequestOptions)
创建项。
SDK 不一定强制实施任何提供的类型 T。 可能会获取或多或少的属性,并且由逻辑来强制实施。
JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。
示例
创建项。
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resource: createdItem } = await container.items.create({
id: "<item id>",
properties: {},
});
function create<T>(body: T, options?: RequestOptions): Promise<ItemResponse<T>>
参数
- body
-
T
表示项的正文。 可以包含任意数量的用户定义的属性。
- options
- RequestOptions
用于修改请求(例如,指定分区键)。
返回
Promise<ItemResponse<T>>
executeBulkOperations(OperationInput[], RequestOptions)
对项执行批量作。
示例
import { CosmosClient, OperationInput } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const operations: OperationInput[] = [
{
operationType: "Create",
resourceBody: { id: "doc1", name: "sample", key: "A" },
},
{
operationType: "Upsert",
partitionKey: "A",
resourceBody: { id: "doc2", name: "other", key: "A" },
},
];
await container.items.executeBulkOperations(operations);
function executeBulkOperations(operations: OperationInput[], options?: RequestOptions): Promise<BulkOperationResult[]>
参数
- operations
作列表
- options
- RequestOptions
用于修改请求
返回
Promise<BulkOperationResult[]>
作对应的作结果列表
getChangeFeedIterator<T>(ChangeFeedIteratorOptions)
返回迭代器以循环访问更改页。 返回的迭代器可用于提取单个分区键、源范围或整个容器的更改。
示例
import {
CosmosClient,
PartitionKeyDefinitionVersion,
PartitionKeyKind,
ChangeFeedStartFrom,
} from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const containerDefinition = {
id: "Test Database",
partitionKey: {
paths: ["/name", "/address/zip"],
version: PartitionKeyDefinitionVersion.V2,
kind: PartitionKeyKind.MultiHash,
},
};
const { container } = await database.containers.createIfNotExists(containerDefinition);
const partitionKey = "some-partition-Key-value";
const options = {
changeFeedStartFrom: ChangeFeedStartFrom.Beginning(partitionKey),
};
const iterator = container.items.getChangeFeedIterator(options);
while (iterator.hasMoreResults) {
const response = await iterator.readNext();
// process this response
}
function getChangeFeedIterator<T>(changeFeedIteratorOptions?: ChangeFeedIteratorOptions): ChangeFeedPullModelIterator<T>
参数
- changeFeedIteratorOptions
- ChangeFeedIteratorOptions
返回
getEncryptionQueryIterator(EncryptionQueryBuilder, FeedOptions)
查询加密容器中的所有项目。
示例
将所有项读取到数组。
import { CosmosClient, EncryptionQueryBuilder } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const queryBuilder = new EncryptionQueryBuilder(
`SELECT firstname FROM Families f WHERE f.lastName = @lastName`,
);
queryBuilder.addParameter("@lastName", "Hendricks", "/lastname");
const queryIterator = await container.items.getEncryptionQueryIterator(queryBuilder);
const { resources: items } = await queryIterator.fetchAll();
function getEncryptionQueryIterator(queryBuilder: EncryptionQueryBuilder, options?: FeedOptions): Promise<QueryIterator<ItemDefinition>>
参数
- queryBuilder
- EncryptionQueryBuilder
作的查询配置。 有关如何在加密属性上构建查询的更多信息,请参见 SqlQuerySpec 。
- options
- FeedOptions
用于修改请求(例如,指定分区键)。
返回
Promise<QueryIterator<ItemDefinition>>
query(string | SqlQuerySpec, FeedOptions)
查询所有项。
示例
将所有项读取到数组。
import { CosmosClient, SqlQuerySpec } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const querySpec: SqlQuerySpec = {
query: `SELECT * FROM Families f WHERE f.lastName = @lastName`,
parameters: [{ name: "@lastName", value: "Hendricks" }],
};
const { resources: items } = await container.items.query(querySpec).fetchAll();
function query(query: string | SqlQuerySpec, options?: FeedOptions): QueryIterator<any>
参数
- query
-
string | SqlQuerySpec
作的查询配置。 有关如何配置查询的详细信息,请参阅 SqlQuerySpec。
- options
- FeedOptions
用于修改请求(例如,指定分区键)。
返回
QueryIterator<any>
query<T>(string | SqlQuerySpec, FeedOptions)
查询所有项。
示例
将所有项读取到数组。
import { CosmosClient, SqlQuerySpec } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const querySpec: SqlQuerySpec = {
query: `SELECT * FROM Families f WHERE f.lastName = @lastName`,
parameters: [{ name: "@lastName", value: "Hendricks" }],
};
const { resources: items } = await container.items.query(querySpec).fetchAll();
function query<T>(query: string | SqlQuerySpec, options?: FeedOptions): QueryIterator<T>
参数
- query
-
string | SqlQuerySpec
作的查询配置。 有关如何配置查询的详细信息,请参阅 SqlQuerySpec。
- options
- FeedOptions
用于修改请求(例如,指定分区键)。
返回
readAll(FeedOptions)
读取所有项。
JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。
示例
将所有项读取到数组。
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resources: containerList } = await container.items.readAll().fetchAll();
function readAll(options?: FeedOptions): QueryIterator<ItemDefinition>
参数
- options
- FeedOptions
用于修改请求(例如,指定分区键)。
返回
readAll<T>(FeedOptions)
读取所有项。
SDK 不一定强制实施任何提供的类型 T。 可能会获取或多或少的属性,并且由逻辑来强制实施。
JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。
示例
将所有项读取到数组。
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resources: containerList } = await container.items.readAll().fetchAll();
function readAll<T>(options?: FeedOptions): QueryIterator<T>
参数
- options
- FeedOptions
用于修改请求(例如,指定分区键)。
返回
readChangeFeed(ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
function readChangeFeed(changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<any>
参数
- changeFeedOptions
- ChangeFeedOptions
返回
ChangeFeedIterator<any>
readChangeFeed(PartitionKey, ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
示例
从更改源的开头读取。
const iterator = items.readChangeFeed({ startFromBeginning: true });
const firstPage = await iterator.fetchNext();
const firstPageResults = firstPage.result
const secondPage = await iterator.fetchNext();
function readChangeFeed(partitionKey: PartitionKey, changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<any>
参数
- partitionKey
- PartitionKey
- changeFeedOptions
- ChangeFeedOptions
返回
ChangeFeedIterator<any>
readChangeFeed<T>(ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
function readChangeFeed<T>(changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<T>
参数
- changeFeedOptions
- ChangeFeedOptions
返回
readChangeFeed<T>(PartitionKey, ChangeFeedOptions)
警告
现已弃用此 API。
Use getChangeFeedIterator
instead.
创建一个 ChangeFeedIterator
来循环访问更改页面
function readChangeFeed<T>(partitionKey: PartitionKey, changeFeedOptions?: ChangeFeedOptions): ChangeFeedIterator<T>
参数
- partitionKey
- PartitionKey
- changeFeedOptions
- ChangeFeedOptions
返回
upsert(unknown, RequestOptions)
向上插入项。
JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。
function upsert(body: unknown, options?: RequestOptions): Promise<ItemResponse<ItemDefinition>>
参数
- body
-
unknown
表示项的正文。 可以包含任意数量的用户定义的属性。
- options
- RequestOptions
用于修改请求(例如,指定分区键)。
返回
Promise<ItemResponse<ItemDefinition>>
upsert<T>(T, RequestOptions)
向上插入项。
SDK 不一定强制实施任何提供的类型 T。 可能会获取或多或少的属性,并且由逻辑来强制实施。
JSON 项没有设置架构。 它们可能包含任意数量的自定义属性。
示例
向上插入项。
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resource: createdItem1 } = await container.items.create({
id: "<item id 1>",
properties: {},
});
const { resource: upsertItem1 } = await container.items.upsert({
id: "<item id 1>",
updated_properties: {},
});
const { resource: upsertItem2 } = await container.items.upsert({
id: "<item id 2>",
properties: {},
});
function upsert<T>(body: T, options?: RequestOptions): Promise<ItemResponse<T>>
参数
- body
-
T
表示项的正文。 可以包含任意数量的用户定义的属性。
- options
- RequestOptions
用于修改请求(例如,指定分区键)。
返回
Promise<ItemResponse<T>>