Поделиться через


Управление коллекцией в Azure Cosmos DB для MongoDB с помощью JavaScript

Область применения: MongoDB

Управление коллекцией MongoDB, хранящейся в Azure Cosmos DB, с помощью собственного драйвера клиента MongoDB.

Примечание.

Примеры фрагментов кода доступны на GitHub в виде проекта JavaScript.

Справочная документация | по API для MongoDB Package (npm)

Присвоение имени коллекции

В Azure Cosmos DB коллекция аналогична таблице в реляционной базе данных. При создании коллекции имя коллекции формирует сегмент URI, используемый для доступа к ресурсу коллекции и любым дочерним документам.

Ниже приведены краткие правила присвоения имен коллекциям.

  • Имена коллекций могут содержать от 3 до 63 символов
  • Имена коллекций могут содержать только строчные буквы, цифры или дефис (-).
  • Имя контейнера должно начинаться со строчной буквы или цифры.

Получение экземпляра коллекции

Используйте экземпляр класса 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

См. также