Как правильно использовать MongoDB для хранилища пользовательских моделей Strongloop?

Я новичок в Strongloop и новичок в MongoDB. Так много кривых обучения происходит прямо сейчас.

Моя основная проблема заключается в том, что я переключил источник данных модели пользователя (models.json) с разъема памяти на разъем loopback-connector-mongodb, и у меня больше не появляется идентификатор пользователя при вызове / входе в систему. Я получаю обратно accesstoken, но userID является нулевым. Если я вернусь к разъему памяти, я получу идентификатор пользователя 1 или что-то еще.

Кажется, я помню, что где-то читал, если не предоставлю идентификатор, который Strongloop добавил бы для меня. Это только для хранилища данных в памяти? Нужно ли делать что-то особенное, так как это монго?

Нужно ли переключать модель accessToken на mongo (я только подумал об этом)?

Благодарю.

1 ответ

Решение

Здесь вы сталкиваетесь с крайним случаем: user и accessToken поддерживаются двумя различными типами БД. MongoDB использует ObjectID в качестве ключа по умолчанию, в то время как DB памяти использует номер.

accessToken распространяется из базы AccessToken. Он наследует отношение принадлежности к базовой модели пользователя. Тип userId установлен в число. Чтобы решить эту проблему, вы можете убедиться, что модель accessToken подключена к mongodb, или добавить следующее соотношение в models.json.

  "accessToken": {
    "dataSource": "db",
    "public": true,
    "options": {
      "base": "AccessToken",
      "relations": {
        "user": {
          "model": "user",
          "type": "belongsTo",
          "foreignKey": "userId"
        }
      }
    }
  },
Другие вопросы по тегам