Node.js 기본 사항 — MongoDB 인덱스 유형

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

Node.js는 실행되는 프로그램을 만드는 인기 있는 런타임 플랫폼입니다.

브라우저 외부에서 JavaScript를 실행할 수 있습니다.

이 기사에서는 Node.js를 사용하여 프로그램을 만드는 방법을 살펴보겠습니다.

인덱스 유형



MongoDB에는 다양한 텍스트 유형이 있습니다.

문서의 단일 필드에 대해 오름차순 또는 내림차순 정렬 순서를 지정하는 쿼리의 성능을 향상시키기 위해 단일 필드 인덱스를 추가할 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);

async function run() {
  try {
    await client.connect();
    const db = client.db("test");
    const testCollection = await db.collection('test');
    await testCollection.dropIndexes();
    const indexResult = await testCollection.createIndex({ name: 1 });
    console.log(indexResult)
    await testCollection.deleteMany({})
    const result = await testCollection.insertMany([
      { "_id": 1, "name": "apples", "qty": 5, "rating": 3 },
      { "_id": 2, "name": "bananas", "qty": 7, "rating": 1 },
      { "_id": 3, "name": "oranges", "qty": 6, "rating": 2 },
      { "_id": 4, "name": "avocados", "qty": 3, "rating": 5 },
    ]);
    console.log(result)
    const query = {};
    const sort = { name: 1 };
    const cursor = testCollection
      .find(query)
      .sort(sort);
    cursor.forEach(console.dir);
  } finally {
    await client.close();
  }
}
run().catch(console.dir);


정렬 순서가 있는 객체로 sort 메서드를 호출합니다.

문서의 여러 필드에 대해 오름차순 또는 내림차순 정렬 순서를 지정하는 쿼리의 성능을 향상시키는 복합 인덱스 ae 인덱스입니다.

예를 들어, namerating 필드에 화합물을 추가하고 다음과 같이 작성하여 사용할 수 있습니다.

const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);

async function run() {
  try {
    await client.connect();
    const db = client.db("test");
    const testCollection = await db.collection('test');
    await testCollection.dropIndexes();
    const indexResult = await testCollection.createIndex({ name: 1, rating: 1 });
    console.log(indexResult)
    await testCollection.deleteMany({})
    const result = await testCollection.insertMany([
      { "_id": 1, "name": "apples", "qty": 5, "rating": 3 },
      { "_id": 2, "name": "bananas", "qty": 7, "rating": 1 },
      { "_id": 3, "name": "oranges", "qty": 6, "rating": 2 },
      { "_id": 4, "name": "avocados", "qty": 3, "rating": 5 },
    ]);
    console.log(result)
    const query = {};
    const sort = { name: 1, rating: 1 };
    const cursor = testCollection
      .find(query)
      .sort(sort);
    cursor.forEach(console.dir);
  } finally {
    await client.close();
  }
}
run().catch(console.dir);


우리는 다음을 가지고 있습니다:

const indexResult = await testCollection.createIndex({ name: 1, rating: 1 });


복합 인덱스를 추가합니다.

그런 다음 sortname 필드가 모두 있는 객체로 rating를 호출합니다.

다중 키 인덱스는 배열 값이 있는 필드에 오름차순 또는 내림차순 인덱스를 지정하는 쿼리의 성능을 향상시키는 인덱스입니다.

예를 들어 다음과 같이 다중 키 인덱스를 만들고 사용할 수 있습니다.

const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);

async function run() {
  try {
    await client.connect();
    const db = client.db("test");
    const testCollection = await db.collection('test');
    await testCollection.dropIndexes();
    const indexResult = await testCollection.createIndex({ types: 1 });
    console.log(indexResult)
    await testCollection.deleteMany({})
    const result = await testCollection.insertMany([
      { "_id": 1, "name": "apples", "qty": 5, "rating": 3, "types": ["granny smith", "mcintosh"] },
      { "_id": 2, "name": "bananas", "qty": 7, "rating": 1, "types": ["chiquita", "del monte"] },
      { "_id": 3, "name": "oranges", "qty": 6, "rating": 2, "types": [] },
      { "_id": 4, "name": "avocados", "qty": 3, "rating": 5, "types": [] },
    ]);
    console.log(result)
    const query = { types: "granny smith" };
    const sort = { types: 1 };
    const projection = { types: 1 };
    const cursor = testCollection
      .find(query)
      .sort(sort)
      .project(projection);
    cursor.forEach(console.dir);
  } finally {
    await client.close();
  }
}
run().catch(console.dir);


우리는 다음을 가지고 있습니다:

const indexResult = await testCollection.createIndex({ types: 1 });

types 필드에 인덱스를 생성합니다.

그런 다음 types 필드에서 쿼리를 수행할 수 있습니다.

결론



MongoDB에는 다양한 쿼리의 성능을 최적화하기 위해 다양한 유형의 인덱스가 있습니다.

좋은 웹페이지 즐겨찾기