Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB로 인덱스를 생성하는 방법은 무엇입니까?

<시간/>

MongoDB에서 인덱스를 생성하려면sureIndex() 메소드를 사용하십시오. 먼저 다음 쿼리를 사용하여 컬렉션을 생성해 보겠습니다.

> db.createCollection(&qu/ot;creatingUniqueIndexDemo");
{ "ok" : 1 }

다음은 위 컬렉션에 대한 인덱스를 생성하는 쿼리입니다.

> db.creatingUniqueIndexDemo.ensureIndex({"UserCountryName":1},{unique:true});
{
   "createdCollectionAutomatically" : false,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}

다음은 위 컬렉션에 일부 문서를 삽입하는 쿼리입니다.

>db.creatingUniqueIndexDemo.insertOne({"UserName":"John","UserAge":21,"UserCountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9947bd330fd0aa0d2fe4d8")
}
>db.creatingUniqueIndexDemo.insertOne({"UserName":"Mike","UserAge":23,"UserCountryName":"UK"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9947c9330fd0aa0d2fe4d9")
}
>db.creatingUniqueIndexDemo.insertOne({"UserName":"Robert","UserAge":26,"UserCountryName":"US"});
2019-03-26T02:57:52.670+0530 E QUERY [js] WriteError: E11000 duplicate key error collection: test.creatingUniqueIndexDemo index: UserCountryName_1 dup key: { : "US" } :
WriteError({
   "index" : 0,
   "code" : 11000,
   "errmsg" : "E11000 duplicate key error collection: test.creatingUniqueIndexDemo index: .  
   UserCountryName_1 dup key: { : \"US\" }",
   "op" : {
      "_id" : ObjectId("5c9947d8330fd0aa0d2fe4da"),
      "UserName" : "Robert",
      "UserAge" : 26,
      "UserCountryName" : "US"
   }
})
WriteError@src/mongo/shell/bulk_api.js:461:48
Bulk/mergeBatchResults@src/mongo/shell/bulk_api.js:841:49
Bulk/executeBatch@src/mongo/shell/bulk_api.js:906:13
Bulk/this.execute@src/mongo/shell/bulk_api.js:1150:21
DBCollection.prototype.insertOne@src/mongo/shell/crud_api.js:252:9
@(shell):1:1
> db.creatingUniqueIndexDemo.insertOne({"UserName":"Robert","UserAge":26,"UserCountryName":"AUS"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9947e3330fd0aa0d2fe4db")
}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.

> db.creatingUniqueIndexDemo.find().pretty();

그러면 다음과 같은 출력이 생성됩니다.

{
   "_id" : ObjectId("5c9947bd330fd0aa0d2fe4d8"),
   "UserName" : "John",
   "UserAge" : 21,
   "UserCountryName" : "US"
}
{
   "_id" : ObjectId("5c9947c9330fd0aa0d2fe4d9"),
   "UserName" : "Mike",
   "UserAge" : 23,
   "UserCountryName" : "UK"
}
{
   "_id" : ObjectId("5c9947e3330fd0aa0d2fe4db"),
   "UserName" : "Robert",
   "UserAge" : 26,
   "UserCountryName" : "AUS"
}