Проблемы с API-интерфейсом cosmos3.6 mongoDB для составного индекса - PullRequest
1 голос
/ 28 апреля 2020

Я понимаю тот факт, что в версии 3.6 Cosmos DB нам необходимо создать индекс для каждого поля на уровне приложения, если мы хотим выполнить запрос сортировки.

Однако при решении такого рода проблем мы сталкиваемся с еще одна проблема, связанная с индексами, для жалоб на отсутствие composite index. И этот запрос мы пытаемся выполнить

{
  "aggregate": "calendarEventOccurrences",
  "pipeline": [
    {
      "$match": {
        "$and": [
          {
            "parentRefId": {
              "$in": [
                "12345678"
              ]
            },
            "$or": [
              {
                "startDate": {
                  "$gte": {
                    "$date": "2020-04-28T15:45:56.000Z"
                  },
                  "$lte": {
                    "$date": "2021-04-28T15:45:56.000Z"
                  }
                }
              },
              {
                "endDate": {
                  "$gte": {
                    "$date": "2020-04-28T15:45:56.000Z"
                  },
                  "$lte": {
                    "$date": "2021-04-28T15:45:56.000Z"
                  }
                }
              },
              {
                "$and": [
                  {
                    "startDate": {
                      "$lte": {
                        "$date": "2020-04-28T15:45:56.000Z"
                      }
                    }
                  },
                  {
                    "endDate": {
                      "$gte": {
                        "$date": "2021-04-28T15:45:56.000Z"
                      }
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "$sort": {
        "startDate": 1,
        "endDate": 1,
        "title": 1
      }
    },
    {
      "$skip": 0
    },
    {
      "$limit": 2147483647
    },
    {
      "$project": {
        "id": "$_id",
        "title": 1,
        "description": 1,
        "shortDescription": 1,
        "startDate": 1,
        "endDate": 1,
        "location": 1,
        "category": 1,
        "timezone": 1,
        "contact": 1,
        "parentRefId": 1,
        "allDay": 1
      }
    }
  ]
}

В то время как кажется, что сортировка требуется по трем полям:

{ "$sort" : { "startDate" : 1 , "endDate" : 1 , "title" : 1}}

В результате мы вручную создали составной индекс из cosmosDB через mon go API и из db.collection.getIndexes() мы могли видеть, что составной индекс был успешно создан.

Тем не менее проблемы не исчезли go, надеясь найти реальное решение здесь для решения проблемы индекса на Космос версия 3.6 с API MongoDB.

...