次の方法で共有


Azure Cosmos DB for MongoDB で JavaScript を使ってコレクションを管理する

適用対象: MongoDB

ネイティブ MongoDB クライアント ドライバーを使って、Azure Cosmos DB に格納された MongoDB コレクションを管理します。

Note

コード スニペットの例は、JavaScript プロジェクトとして GitHub で入手できます。

MongoDB 用 API リファレンス ドキュメント | MongoDB パッケージ (npm)

コレクションの名前付け

Azure Cosmos DB では、コレクションはリレーショナル データベースのテーブルに似ています。 コレクションを作成すると、コレクション名によって、コレクション リソースと子項目へのアクセスに使用される URI のセグメントが形成されます。

コレクション インスタンスの取得

サーバー上のコレクションにアクセスするには、Collection クラスのインスタンスを使います。

次のコード スニペットは、クライアント接続を既に作成済みで、これらのコード スニペットの後にクライアント接続を閉じることを前提としています。

コレクションの作成

コレクションを作成するには、コレクションにドキュメントを挿入します。

// get database client for database 
// if database or collection doesn't exist, it is created
// when the doc is inserted

// insert doc
const doc = { name: `product-${random}` };
const insertOneResult = await client.db("adventureworks").collection("products").insertOne(doc);
console.log(`Insert 1 - ${JSON.stringify(insertOneResult)}`);

// insert docs
const docs = [
    { name: `product-${random}` },
    { name: `product-${random}` }
];
const insertManyResult = await client.db("adventureworks").collection("products").insertMany(docs);
console.log(`Insert many ${JSON.stringify(insertManyResult)}`);

コレクションの削除

データベースからコレクションをドロップして、完全に削除します。 ただし、次にそのコレクションにアクセスする挿入または更新操作では、その名前で新しいコレクションが作成されます。

// Drop the collection from the database, removing it permanently. 
// New accesses will create a new collection.

// drop from db instance
const dropCollection1 = await client.db("adventureworks").dropCollection("products");
console.log(`Collection dropped:\t${JSON.stringify(dropCollection1)}`);

// drop from collection instance
const dropCollection2 = await client.db("adventureworks").collection('products-2').drop();
console.log(`Collection dropped:\t${JSON.stringify(dropCollection2)}`);

上記のコード スニペットでは、次のようなコンソール出力例が表示されます。

Collection dropped:     true
Collection dropped:     true
done

コレクション インデックスの取得

インデックスは MongoDB のクエリ エンジンがデータベースのクエリのパフォーマンスを向上させるために使います。

// Get all indexes in collection
const collectionInstance = await client.db("adventureworks").collection('products')
const indexes = await collectionInstance.indexes();
console.log(`Indexes on collection:\n${Object.keys(indexes).map(key => `\t${key}: ${JSON.stringify(indexes[key])}\n`)}`);

上記のコード スニペットでは、次のようなコンソール出力例が表示されます。

Indexes on collection:
        0: {"v":1,"key":{"_id":1},"name":"_id_","ns":"adventureworks.products"}
,       1: {"v":1,"key":{"name":1},"name":"name_1","ns":"adventureworks.products"}

done

関連項目