MongoDB에서 중첩 인덱스를 만드는 방법은 무엇입니까?
A. 색인 작성 방법nested
가치관은?
B. 색인 작성 방법valuetwo
?
{
id: 00000,
attrs: {
nested:{
value: value1,
valuetwo: value2,
}
}
}
제가 여기서 찾아봤습니다. 제가 알기로는 http://www.mongodb.org/display/DOCS/Indexes, 과 문서들은 중첩되지 않은 것들을 색인화하는 것에 대해 명확하지 않습니다.
최상위 필드에 색인을 작성하는 것처럼 다음과 같이 작성할 수 있습니다.
db.collection.createIndex({"attrs.nested.value": 1})
각 필드에 명시적으로 인덱스를 작성해야 합니다.
MongoDB는 인덱스 필드가 배열인 경우 멀티키 인덱스를 자동으로 생성하므로 멀티키 유형을 명시적으로 지정할 필요가 없습니다.
이는 시나리오의 두 가지 작업에 모두 효과적입니다.
db.coll.createIndex( { "addr.pin": 1 } )
시나리오 1 중첩 개체
{
userid: "1234",
addr: {
pin:"455522"
}
},
{
userid: "1234",
addr: {
pin:"777777"
}
}
시나리오 2 중첩 어레이
{
userid: "1234",
addr: [
{ pin:"455522" },
{ pin:"777777" },
]
}
https://docs.mongodb.com/manual/core/index-multikey/
A. 중첩된 모든 속성을 인덱싱하려면 다음과 같이 별도로 인덱싱해야 합니다.
db.collection.createIndex({"attrs.nested.value": 1});
db.collection.createIndex({"attrs.nested.valuetwo": 1});
이 작업은 다음을 사용하여 하나의 명령으로 수행할 수 있습니다.
db.collection.createIndexes([{"attrs.nested.value": 1}, {"attrs.nested.valuetwo": 1}]);
B. "값 2"만 색인화하려면:
db.collection.createIndex({"attrs.nested.valuetwo": 1})
작성 사용인덱스 오버보증확실한 인덱스인덱스는 버전 3.0.0부터 사용되지 않습니다.
이러한 답변이 작성되었기 때문에 이 문제를 해결하기 위한 새로운 기능이 있을 수 있습니다.
Mongodb에는 다양한 키를 포함하는 필드에 대한 인덱스를 만들 수 있는 와일드카드 인덱스가 있습니다.
설명서에서 다음을 참조하십시오.
필드가 중첩된 문서 또는 배열인 경우, 와일드카드 색인은 문서/열에 재귀적으로 나타나고 문서/열의 모든 스칼라 필드를 색인화합니다.
따라서 질문의 인덱스는 다음과 같이 구성됩니다.
db.collections.createIndex({ "attrs.nested.$**": 1 })
여러분은 여기에서 이것에 대해 더 읽을 수 있습니다!
이전의 대답들은 저에게 거의 심장마비를 일으켰습니다.
언급URL : https://stackoverflow.com/questions/9730136/how-to-create-a-nested-index-in-mongodb
'programing' 카테고리의 다른 글
MVC / MVP / MVVM 대체 뭐야? (0) | 2023.05.14 |
---|---|
SqlParameter 이름 앞에 @를 추가해야 합니까? (0) | 2023.05.14 |
Postgres가 서버에 연결할 수 없습니다. (0) | 2023.05.14 |
Interop을 사용하여 Excel에서 비어 있지 않은 마지막 열 및 행 인덱스 가져오기 (0) | 2023.05.14 |
.on('click')과 .click()의 차이 (0) | 2023.05.14 |