3.5.1 ошибка не может получить только что созданный узел по идентификатору - PullRequest
0 голосов
/ 24 января 2019

РЕДАКТИРОВАТЬ: только что получил такое же поведение на 3,4

EDIT2: Если я удаляю disableLosslessIntegers из соединения, проблема исчезает, но все целые числа возвращаются в виде структур типа {low: 20, high: 0}, что нарушает все мое приложение

Следующий код отлично работает на neo4j 3.3, используя neo4j-драйвер 1.7.2 для узла:

import {v1 as neo4j} from 'neo4j-driver';

const url: string = process.env.COREDB_URL || '';
const user: string = process.env.COREDB_USERNAME || '';
const password: string = process.env.COREDB_PASSWORD || '';

const driver = neo4j.driver(url, neo4j.auth.basic(user, password), {disableLosslessIntegers: true});
let connection = driver.session()


async function go() {
    let res = await connection.run(`create (b:Banana {tag: 'test'}) return b,id(b) as id`, {});
    let b = res.records[0].get('b').properties
    console.log('b',b)
    let id = res.records[0].get('id')
    console.log('id',id)
    res = await connection.run(`MATCH (u) where id(u)=$id return u as id`, {id: id});
    console.log(res.records)
    let id2 = res.records[0].get('id').properties;
    console.log('id2',id2)
}

go().then(() => console.log('done')).catch((e) => console.log(e.message))

это дает следующий вывод:

> node tools\test-id.js
b { tag: 'test' }
id 1858404
[ Record {
    keys: [ 'id' ],
    length: 1,
    _fields: [ [Node] ],
    _fieldLookup: { id: 0 } } ]
id2 { tag: 'test' }
done

Под 3.5.1 не работает. Второе утверждение не возвращает записей:

> node tools\test-id.js
b { tag: 'test' }
id 1856012
[]
Cannot read property 'get' of undefined

Кстати, причина, по которой мне нужно сделать get by id сразу после создания, заключается в том, что я использую триггер apoc для добавления объектов в узел после создания, и триггеры apoc, очевидно, запускаются после создания и возврата объекта, поэтому Мне нужно второе, чтобы увидеть преобразованный узел. Но для этого перегруженного примера я удалил триггер из моей БД, чтобы убедиться, что он не вызывает проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...