Скажем, у меня есть следующее определение модели:Как передать свойство в вложенных объектах ObjectId с loopback и mongodb?
{
"name": "Report",
"idInjection": true,
"trackChanges": true,
"mongodb": {
"collection": "report"
},
"properties": {
"resource" : {"type": "String"},
"date" : {"type": "Date"},
"people" : [ {
// Here's where I like to have an id property.
"role" : {"type": "String"},
"hours" : {"type": "Number"}
} ],
"name" : {"type": "String"}
},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
Теперь я хочу, чтобы иметь идентификатор свойства в каждом объекте в массиве людей (которые будут доступны с как report.people [0] .id), и это должно быть casted ObjectId о вставках и обновлениях. Но хорошо, loopback не имеет типа ObjectId
, и единственный способ, по-видимому, использует отношения, но тогда как должен быть внешний ключ?
Есть ли способ иметь свойство id, на которое ссылается ObjectId, на вставки и обновления?
Update:
Я попытался с помощью embedsMany, но идентификатор не был преобразован:
Вот мой report.json:
{
"name": "Report",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"name": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"people" : {
"type": "embedsMany",
"model": "ReportPerson",
"options": {
"validate": true,
"autoId": false
}
}
},
"acls": [],
"methods": []
}
и вот мой отчет-person.json:
{
"name": "ReportPerson",
"base": "Model",
"idInjection": true,
"properties": {
"hours": {"type" : "number"}
},
"validations": [{
"person" : {
"model": "Person",
"type": "belongsTo",
"foreignKey": "id"
}
}],
"relations": {},
"acls": [],
"methods": []
}
Когда я пытаюсь вставить этот Report
с помощью http API:
{
"name" : "report",
"people" : [
{
"id" : "54c7926e1d621dc65495f069",
"hours" : 2
}
]
}
id
не будет приведен к ObjectId и остается в виде строки в базе данных.
Вы проверили http://docs.strongloop.com/display/LB/Embedded+models+and+relations? –
@ RaymondFeng Я обновил мой вопрос относительно этого. –
@FaridNouriNeshat У вас был какой-то успех в этой проблеме? – agoldis