JavaScript を使用して Azure Cosmos DB for NoSQL の項目のクエリを実行する
適用対象: NoSQL
Azure Cosmos DB 内の項目は、コンテナー内に格納されているエンティティを表します。 NoSQL 用 API では、項目は一意の識別子を含む JSON 形式のデータから成ります。 NoSQL 用 API を使用してクエリを発行すると、JSON ドキュメントの JSON 配列として結果が返されます。
SQL を使用して項目のクエリを実行する
Azure Cosmos DB for NoSQL では、構造化照会言語 (SQL) を使用してコンテナー内の項目に対してクエリを実行できます。 SELECT * FROM products
などの単純な SQL クエリは、コンテナーからすべての項目とプロパティを返します。 クエリは、さらに複雑にして、特定のフィールド プロジェクション、フィルター、およびその他の一般的な SQL 句を含めることができます。
SELECT
p.name,
p.quantity
FROM
products p
WHERE
p.quantity > 500
Azure Cosmos DB for NoSQL の SQL 構文の詳細については、「SQL クエリの使用を開始する」を参照してください。
項目にクエリを実行する
クエリ メソッドを使用して、コンテナーの items オブジェクトから一致する項目の配列を作成します。
const querySpec = {
query: `SELECT * FROM ${container.id} f WHERE f.name = @name`,
parameters: [{
name: "@name",
value: "Sunnox Surfboard",
}],
};
const { resources } = await container.items.query(querySpec).fetchAll();
for (const product of resources) {
console.log(`${product.name}, ${product.quantity} in stock `);
}
クエリ メソッドは、QueryIterator オブジェクトを返します。 すべての結果を取得するには、反復子の fetchAll メソッドを使用します。 QueryIterator には、結果の使用に役立つ fetchNext、hasMoreResults、およびその他のメソッドも用意されています。
次のステップ
複数の項目に対してクエリを実行したので、NoSQL 用 API を使用したエンド ツー エンドのチュートリアルのいずれかを試してみます。