Node.js 기본 사항 — MongoDB 텍스트 및 고유 인덱스
4163 단어 programmingjavascriptwebdevnode
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
Node.js는 실행되는 프로그램을 만드는 인기 있는 런타임 플랫폼입니다.
브라우저 외부에서 JavaScript를 실행할 수 있습니다.
이 기사에서는 Node.js를 사용하여 프로그램을 만드는 방법을 살펴보겠습니다.
텍스트 인덱스
텍스트 인덱스를 사용하면 문자열 내용이 포함된 쿼리에서 텍스트 검색을 수행할 수 있습니다.
값이 문자열 또는 문자열 배열인 모든 필드를 포함할 수 있습니다.
예를 들어, 인덱스를 생성하고 작성하여 사용할 수 있습니다."
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: "text" }, { default_language: "english" });
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 = { $text: { $search: "apple" } };
const projection = { name: 1 };
const cursor = testCollection
.find(query)
.project(projection);
cursor.forEach(console.dir);
} finally {
await client.close();
}
}
run().catch(console.dir);
다음과 같이 작성하여 인덱스를 생성합니다.
const indexResult = await testCollection.createIndex({ name: "text" }, { default_language: "english" });
createIndex
메서드는 name
필드에 인덱스를 추가합니다.두 번째 인수에는 인덱스 생성 옵션이 있습니다.
default_language
은 색인 언어를 설정합니다.고유 인덱스
중복 값을 저장하지 않는 필드를 인덱싱하는 고유 인덱스를 추가할 수 있습니다.
_id
필드에는 컬렉션이 생성될 때 추가된 고유 인덱스가 있습니다.예를 들어 다음과 같이 작성할 수 있습니다.
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: "text" }, { unique: true });
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 projection { name: 1 };
const cursor = testCollection
.find(query)
.project(projection);
cursor.forEach(console.dir);
} finally {
await client.close();
}
}
run().catch(console.dir);
두 번째 인수는
createIndex
속성이 unique
으로 설정된 객체인 true
을 호출합니다.컬렉션의 필드에 중복 값이 있는 경우 인덱스를 만들려고 할 때 '중복 키 오류 인덱스' 오류가 발생합니다.
결론
텍스트 검색을 위한 인덱스를 추가하고 MongoDB 필드의 고유 값을 인덱싱할 수 있습니다.
Reference
이 문제에 관하여(Node.js 기본 사항 — MongoDB 텍스트 및 고유 인덱스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/node-js-basics-mongodb-text-and-unique-indexes-4k9k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)