LoopBack ПРЕДУПРЕЖДЕНИЕ: свойство id нельзя изменить с на - PullRequest
0 голосов
/ 08 июня 2018

Я использую LoopBack с MongoDB в качестве источника данных, и у меня есть простая модель, определенная как:

{
    "name": "restaurant",
    "plural": "restaurants",
    "base": "PersistedModel",
    "idInjection": false,
    "options": {
        "validateUpsert": true
    },
    "properties": {
        "name": {
            "type": "string",
            "required": true
        },
        "address": {
            "type": "string",
            "required": true
        }
    },
    "validations": [],
    "relations": {},
    "acls": [],
    "methods": {}
}

У меня есть сценарий автоматической миграции в /server/boot, который создает две простые тестовые данные.
После этого, когда я пытаюсь обновить одну из этих записей с помощью запроса PUT с помощью обозревателя API LoopBack, я получаю предупреждение
WARNING: id property cannot be changed from ... to ... for model:restaurant in 'before save' operation hook
WARNING: id property cannot be changed from ... to ... for model:restaurant in 'loaded' operation hook
и избыточное поле id (аналогично _id Монгополе) создается в БД.

Мне удалось предотвратить создание избыточного поля id, задав для idInjection значение false и определив другое свойство в определении модели как:

"_id": {
  "id": true,
  "generated": true
}

Однако япо-прежнему получать предупреждение после выполнения запроса PUT от проводника API LoopBack.

Как правильно определить поле _id монго в определении модели?

Спасибо.

1 Ответ

0 голосов
/ 21 июня 2018

Вы можете скрыть идентификатор, добавив «скрытое» поле в модель JSON.И добавьте «id» в массив, который будет скрыт.

{
"name": "restaurant",
"plural": "restaurants",
"hidden": [
    "id"
 ],
"base": "PersistedModel",
"idInjection": false,
"options": {
    "validateUpsert": true
},
"properties": {
    "name": {
        "type": "string",
        "required": true
    },
    "address": {
        "type": "string",
        "required": true
    }
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}

}

...