mongodb - TypeScript hur man formaterar en array av objekt till en array av json
Jag har skickat data som variabeln _attachments:
Jag vill förbereda den datan för att infoga som följande struktur:
"_attachments": [
{
"container": "string",
"fileName": "string",
"name": "string",
"mime": "string",
"size": 0
}
]
Men det jag har gjort:
for(let key in _attachments) {
job._attachments[key]['container'] = _attachments[key]['container'];
job._attachments[key]['fileName'] = _attachments[key]['fileName'];
job._attachments[key]['name'] = _attachments[key]['name'];
job._attachments[key]['mime'] = _attachments[key]['mime'];
job._attachments[key]['size'] = _attachments[key]['size'];
}
ger detta fel:
Unprocessable Entity
Obs: Jag använder loopback.
Svar #1
Lägg bara till detta i din attachment.josn:
"id": {
"type": "string",
"id": true,
"defaultFn": "uuid"
}
och det finns ingen anledning att loopa datan.
Svar #2
Från skärmdumpen verkar _attachments vara en array; om det är fallet bör du inte använda for...in för att iterera över den utan for..of. for..in kommer att returnera alla uppräkningsbara egenskaper, inklusive potentiellt "oönskade".
Se längst ner på denna utmärkta MDN-resurs för detaljer (for..of är tillgänglig i Typescript)
for (let index of _attachments) {
...
}
Ännu bättre, använd en karta
const result = _attachments.map( att => ...)
Även strukturen du kartlägger verkar identisk med den ursprungliga strukturen, varför inte använda en direkt tilldelning?
