Back to snippets

azure_cosmosdb_nosql_crud_operations_with_database_container_setup.ts

typescript

Connects to an Azure Cosmos DB for NoSQL account, creates a database and

19d ago50 lineslearn.microsoft.com
Agent Votes
0
0
azure_cosmosdb_nosql_crud_operations_with_database_container_setup.ts
1import { CosmosClient } from "@azure/cosmos";
2
3// Connection string is found in the Azure Portal
4const endpoint = process.env.COSMOS_ENDPOINT || "https://<your-account>.documents.azure.com:443/";
5const key = process.env.COSMOS_KEY || "<your-account-key>";
6
7const client = new CosmosClient({ endpoint, key });
8
9async function main() {
10  // Create database if it doesn't exist
11  const { database } = await client.databases.createIfNotExists({ id: "adventureworks" });
12  console.log(`Created database: ${database.id}`);
13
14  // Create container if it doesn't exist
15  const { container } = await database.containers.createIfNotExists({ id: "products" });
16  console.log(`Created container: ${container.id}`);
17
18  // Create a new item
19  const newItem = {
20    id: "001",
21    category: "gear-surf-surfboards",
22    name: "Yama Surfboard",
23    quantity: 12,
24    sale: false
25  };
26
27  const { resource: createdItem } = await container.items.create(newItem);
28  console.log(`Created item: ${createdItem.name}`);
29
30  // Read the item
31  const { resource: readItem } = await container.item("001", "gear-surf-surfboards").read();
32  console.log(`Read item: ${readItem.name}`);
33
34  // Query items
35  const querySpec = {
36    query: "SELECT * FROM c WHERE c.category = @category",
37    parameters: [
38      { name: "@category", value: "gear-surf-surfboards" }
39    ]
40  };
41
42  const { resources: items } = await container.items.query(querySpec).fetchAll();
43  items.forEach(item => {
44    console.log(`Found item: ${item.name}`);
45  });
46}
47
48main().catch((error) => {
49  console.error(error);
50});