Невозможно выполнить запрос Man go - PullRequest
1 голос
/ 28 апреля 2020

Это мой запрос:

{
   "selector": {
      "_id": {
         "$regex": "^rati"  //need to find all documents in ratings partition
      }
   },
   "fields": [
      "MovieID",
      "UserId",
      "Rating"
   ],
   "limit": 10,
   "sort": [
      {
         "MovieID": "asc"
      }
   ]
}

Когда я запускаю этот запрос, у меня появляется эта ошибка: Error running query. Reason: (no_usable_index) No global index exists for this sort, try indexing by the sort fields.

Если я удаляю

"sort": [
          {
             "MovieID": "asc"
          }
       ]

все работает хорошо. Честно говоря, я схожу с ума, я не могу понять, где я не прав.

Я пробовал этот запрос:

{
   "selector": {
      "_id": {
         "$regex": "^rati"
      },
      "MovieID": {
         "$gte": 0
      }
   },
   "fields": [
      "_id",
      "MovieID",
      "UserId",
      "Rating"
   ],
   "limit": 10,
   "sort": [
      {
         "_id": "asc"
      }
   ]
}

, но тот же.

1 Ответ

1 голос
/ 28 апреля 2020

Вам необходимо создать индекс для поля MovieID

//Create via POST /db/_index HTTP/1.1 Content-Type: application/json

{
    "index": {
        "fields": ["MovieID"]
    },
    "name" : "MovieID-index",
    "type" : "json"
}

После этого включите поле MovieID как часть селектора.

Попробуйте это здесь:

{
   "selector": {
      "_id": {
         "$regex": "^rati"  //need to find all documents in ratings partition
      },
      "MovieID": {"$gte": 0} // include MovieID, If the ID is non-numeric change the selecor type.
   },
   "fields": [
      "MovieID",
      "UserId",
      "Rating"
   ],
   "limit": 10,
   "sort": [
      {
         "MovieID": "asc"
      }
   ]
}

...