Как создать 2dsphere индекс mongodb для страппи? - PullRequest
0 голосов
/ 17 апреля 2020

My strapi Project использует базу данных Mon go.

Версия Strapi: 3.0.0-beta.19.5

Я пробовал:

  • создание индекса 2dsphere вручную с помощью команды в консоли mon go, но когда приложение запускается, индекс удаляется. Я думаю, что база данных вроде как синхронизируется с конфигурацией модели strapi .

  • Я проверил документ strapi и вижу, что есть возможность создать индекс путем добавления конфигурации в model.settings. json , но есть только опция индекс одного поля .

Можно ли создать 2dspere index ?

1 Ответ

0 голосов
/ 17 апреля 2020

Я только что нашел решение. Мне пришлось искать документацию mon goose часть индекса .

В документации strapi они только говорят, что значение 'index' - это логический тип. Который отличается от пн goose до c. Фактически структура model.settings. json соответствует документации mon goose.

Итак, для создания индекса 2dsphere нам просто нужно указать "2dsphere" в ключе "index" на этом поле.

Например.

{
  "kind": "collectionType",
  "connection": "default",
  "collectionName": "phone_stores",
  "info": {
    "name": "phoneStore"
  },
  "options": {
    "increments": true,
    "timestamps": true
  },
  "attributes": {
    "car": {
      "type": "integer",
      "required": true
    },
    "userStoreId": {
      "type": "objectId"
    },
    "location": {
      "type": "json",
      "index": "2dsphere" // <------ <1>
    },
  }
}

<1> Если указано значение true, Индекс отдельного поля будет создан на этом поле. Но вы также можете указать другой тип index , как в моем случае я использую '2dsphere'.

...