Mongoose / MongoDB에서 다중 필드 인덱스 생성


93

Mongoosejs에서 다중 필드 색인을 만드는 방법에 대한 문서를 찾으려고합니다. 특히 색인화되고 고유해야하는 두 개의 필드가 있습니다. 두 필드를 함께 인덱싱하는 몽구스 스키마의 예는 무엇입니까?

답변:


198

여기에 표시된대로 개체 에서 index메서드를 호출하여 Schema이를 수행합니다 . 귀하의 경우에는 다음과 같습니다.

mySchema.index({field1: 1, field2: 1}, {unique: true});

2
이것은 mongodb에서 Compount Index라고합니다. 따라서 field1 및 field1 + field2로 인덱스를 생성합니다. 는 필드 1에 대하여 다음 필드 1 필드 내부에있어서 제 2 인덱스되어,
— 케탄 Ghumatkar

1
field1 : 및 field2 : 뒤에 1의 의미는 무엇입니까?
— 데이먼 위안

9
@DamonYuan 색인에서 필드의 정렬 순서를 설정합니다. 1오름차순, -1내림차순입니다.
— JohnnyHK 2015 년

1
@KetanGhumatkar에 대한 호출에서 필드가 개체에 나열되는 순서를 기반으로합니다 index.
— JohnnyHK

2
1및 -1 오름차순으로 또는 인덱스 필드 내림차순 인덱스 키를 지정한다. 나는 문서 http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/를
— Thai Ha


0

그건 그렇고, 허용되는 대답은 잘못되었습니다. https://stackoverflow.com/a/52553550/129300에 따라 필드 이름을 작은 따옴표로 묶어야합니다.

mySchema.index({'field1': 1, 'field2': 1}, {unique: true});

행복한 날!


JS의 객체 키는 구문 상 유효한 식별자 인 경우 인용을 해제 할 수 있습니다. field1및 field2유효한 식별자이다. field1.foo예를 들면 그렇지 않습니다.
— 거스

-3
    Following command can be used to create compound index for nested json:
    db.ACCOUNT_collection.createIndex({"account.id":1,"account.customerId":1},{unique:1}) 
Mongo json structure is like :
{"_id":"648738"
 "account": { 
    "id": "123",
    "customerId": 7879,
    "name": "test"
   ..
   ..

  }
}

예상대로 완벽하게 작동하는 샘플 데이터로 테스트했습니다.


mongooses 셸을 사용하는 것을 원하지 않습니다. 노드 js 스키마를 사용하는 것이
— 좋습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.