0
나는 Mongo에서 부분적인 인덱스를 테스트 해왔고, $match
단계에서 aggregation expression을 사용하면 올바른 인덱스를 사용하는 데 방해가되는 것으로 보인다.Mongo aggregation match expression과 부분적인 인덱스
예를 들어, 나는 다음과 같은 문서와 data
모음이 있습니다
{
"type": "person",
"value": {
"id": 1,
"name": "Person 1",
"age": 10
}
},
{
"type": "person",
"value": {
"id": 2,
"name": "Person 2",
"age": 20
}
}
을 그리고 {"type": "person"}
문서에 대한 부분 인덱스를 만들 수 있습니다. 집계를 실행할 때
{
"$match": {
"type": "person",
"value.age": { "$gte": 15 }
}
}
색인은 히트를 기록하지만 다음 집계를 수행하는 경우에는 색인이 적용되지 않습니다.
{
"$match": {
"$expr": {
"$and": [
{ "$eq": ["$type", "person"] },
{ "$gte": ["$value.age", 15] },
]
}
}
}
의 부분 색인과 집계 표현식이 호환되지 않습니까? 이 일을 할 수있는 방법이 있습니까?
추 신 : let 및 파이프 라인 syntax으로 $lookup
을 만들고 있기 때문에 집계 표현식을 사용해야합니다.
를 사용할 수 있습니다. 내가 할 수 있다는 것을 알고 있지만, [집계 표현식] (https://docs.mongodb.com/manual/meta/aggregation-quick-reference/#aggregation-expressions)을 사용하지 않습니다. 편집 된 질문이 명확히 나타납니다. –