Как извлечь строки из массива QueryResult из Postgres - PullRequest
0 голосов
/ 03 августа 2020

Я получаю ответ от своей БД в виде массива, который является результатом выполнения двух запросов. Мне нужно извлечь строки, представленные в Result. Как я могу извлечь строки, содержащие объекты?

Или любым другим способом правильно получить данные? Обратите внимание, что я выполнил два запроса одновременно, поэтому получил такой ответ.

Я не вставляю здесь проверенный код, поэтому, пожалуйста, простите меня за это.

[ Result {
command: 'SELECT',
rowCount: 7,
oid: null,
rows:
 [ [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object] ],
fields: [ [Field], [Field], [Field] ],
_parsers:
 [ [Function: parseBigInteger],
   [Function: noParse],
   [Function: noParse] ],
_types: TypeOverrides { _types: [Object], text: {}, binary: {} },
RowCtor: null,
rowAsArray: false },
Result {
command: 'SELECT',
rowCount: 11,
oid: null,
rows:
 [ [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object],
   [Object] ],
fields: [ [Field], [Field], [Field] ],
_parsers:
 [ [Function: parseBigInteger],
   [Function: noParse],
   [Function: noParse] ],
_types: undefined,
RowCtor: null,
rowAsArray: false } ]

JSON. stringify (dbres, null, 4) дает мне

[
{
    "command": "SELECT",
    "rowCount": 7,
    "oid": null,
    "rows": [
        {
            "count": "11",
            "a_id": "solution",
            "a_description": "Solution"
      }]
}]

1 Ответ

0 голосов
/ 04 августа 2020

Сначала вам нужно go просмотреть результаты ваших запросов, а затем для каждого запроса сопоставить строки. следующее должно сделать более или менее трюк

interface IQResult {
    queryId: number;
    queryResults: Array<Record<string, any>>;
}

    const t =
        dbres &&
        dbres.map((res, index) => {
            let qResult: IQResult = {
                queryId: index,
                queryResults: [],
            };

            res &&
                res.forEach(
                    (r) =>
                        (qResult = {
                            ...qResult,
                            queryResults: [...qResult.queryResults, ...r.rows],
                        })
                );
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...