Итак, я застрял в проблеме, которая должна быть простой, и я уверен, что упускаю что-то очевидное.
Я слежу за этой документацией:
так что у меня есть 3 стола
клиент, команда, клиент-команда
client.json
{
"name": "client",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"teams": {
"type": "hasMany",
"model": "team",
"foreignKey": "teamId",
"through": "client-team"
}
},
"acls": [],
"methods": {}
}
team.json
{
"name": "team",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"type": {
"type": "string",
"required": true,
"default": "first-team"
},
"name": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"clients": {
"type": "hasMany",
"model": "client",
"foreignKey": "clientId",
"through": "client-team"
}
},
"acls": [],
"methods": {}
}
client-team.json
{
"name": "client-team",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"clientId": {
"type": "string",
"required": true
},
"teamId": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"client": {
"type": "belongsTo",
"model": "Client",
"foreignKey": "clientId"
},
"team": {
"type": "belongsTo",
"model": "Team",
"foreignKey": "teamId"
}
},
"acls": [],
"methods": {}
}
так что все отношения установлены правильно (я думаю) ...
то в моих клиентах у меня есть 1 клиент
[
{
"name": "Client name",
"id": "59876185508eb519385779c6"
}
]
а в моих командах их много, но точно это:
[
{
"type": "type",
"name": "Team name",
"id": "5ae8a37add2989a32d37f83d"
}
]
И тогда я иду к своему
localhost:3000/explorer
Опубликовать команду клиента
как это
{
"clientId": "59876185508eb519385779c6",
"teamId": "5ae8a37add2989a32d37f83d"
}
и я получаю ответ 200:
{
"clientId": "59876185508eb519385779c6",
"teamId": "5ae8a37add2989a32d37f83d",
"id": "5ae961873a7e3b33f0579fc3"
}
так что связь есть ....
Но затем, когда я перехожу к «ПОЛУЧИТЬ клиент / идентификатор» и делаю
id: 59876185508eb519385779c6 filter: {"include":["teams"]}
это ответ
{
"name": "Chelsea FC",
"id": "59876185508eb519385779c6",
"teams": []
}
То же самое происходит в "GET team / id", и я использую
id: 5ae8a37add2989a32d37f83d filter: {"include":["clients"]}
или если я перейду к "ПОЛУЧИТЬ команды / {id} / клиенты" и положи идентификатор: 5ae8a37add2989a32d37f83d
я получил
[]
Так что я делаю не так? Я уверен, что упускаю одну глупую очевидную вещь: /
используя монго, если это имеет значение
Здесь есть три проблемы:
client-team.json
{
"name": "client-team",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"clientId": {
"type": "objectId", // !!! changed (not required)
"required": true
},
"teamId": {
"type": "objectId", // !!! changed (not required)
"required": true
}
},
"validations": [],
"relations": {
"client": {
"type": "belongsTo",
"model": "client", // !!! changed
"foreignKey": "clientId"
},
"team": {
"type": "belongsTo",
"model": "team", // !!! changed
"foreignKey": "teamId"
}
},
"acls": [],
"methods": {}
}
client.json
{
"name": "client",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"teams": {
"type": "hasMany",
"model": "team",
"foreignKey": "clientId", // !!! changed (we describing id of this model, not team)
"through": "client-team"
}
},
"acls": [],
"methods": {}
}
team.json
{
"name": "team",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"type": {
"type": "string",
"required": true,
"default": "first-team"
},
"name": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"clients": {
"type": "hasMany",
"model": "client",
"foreignKey": "teamId", // !!! changed (the same as the previous)
"through": "client-team"
}
},
"acls": [],
"methods": {}
}
@DS_web_developer перепроверьте мой комментарий
нет ... все еще 0, это ничего не меняет ... проводник по-прежнему дает мне возможность публиковать как строку ... и если я это сделаю ... все равно получу пустой массив
Я только что воссоздал это как новый проект ... и он работает, как ожидалось ... так что у меня может быть какая-то ошибка где-то еще. спасибо за попытку помочь
Хм .... не так быстро ... Я воссоздал это с моделями db, а не с mongo, где id были числовыми ..... Я пытался сделать это с mongo ... и это не работает: /
это работает ... спасибо! Я знал, что совершаю такую глупую ошибку: / Вы заслуживаете пинты или двух!
@DS_web_developer, позвольте мне проверить