Я хочу создать модель для этих данных JSON в Loopback - PullRequest
0 голосов
/ 13 ноября 2018
 "US Virgin Islands": [
"Charlotte Amalie",
"Christiansted",
"Frederiksted",
"Kingshill",
"St John Island"
],

У меня есть этот файл JSON.Я хочу сохранить данные как есть.Так что название страны и всех городов у нее есть.Я создал коллекцию под названием address, но я не знаю, как правильно установить свойства.Я использую MongoDB в качестве базы данных.Я хочу создать модель JSON.

 "name": "address",
  "base": "PersistedModel",

  "idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
 "country": {
   "type": "object",
   "required": true
}
},

1 Ответ

0 голосов
/ 14 ноября 2018

Если вы хотите использовать связанную модель в вашей модели адреса, вам нужно использовать отношение. Я рекомендую использовать loopback cli для этого. Также проверьте главу Relations в петлевых документах, чтобы получить больше информации об отношениях.

Если у вас есть модель country , модель address будет определяться как:

{
   "name":"address",
   "base":"PersistedModel",
   "idInjection":true,
   "options":{
      "validateUpsert":true
   },
   "relation": {
      "country": {
         "type": "hasOne",
         "model": "country"
         "foreignKey": ""
      }
   }
}

Кроме того, вам необходимо создать отношение ownTo в модели адреса:

{
   "name":"country",
   "base":"PersistedModel",
   "idInjection":true,
   "options":{
      "validateUpsert":true
   },
   "properties": { ... }
   "relation": {
      "address": {
         "type": "belongsTo",
         "model": "address"
         "foreignKey": ""
      }
   }
}

Он автоматически создаст поле countryId в вашей модели address . Затем, если вы хотите загрузить адрес с экземпляром модели всей страны вместо countryId, вам нужно вызвать что-то вроде:

Address.find({where: {id: someId}, include: 'country'})
...