Neo4j - проблема создания отношений с Int64. MaxValue хранит неправильное значение

Я использую neo4j v3.1.0 и создаю следующий простой график.

create (d: User {code: 'testid'}) - [: STATE {to: 9223372036854775807}] -> (UserState {name: 'Paul', электронная почта:'[email protected] '})

Значение отношения к - это long.MaxValue, которое я использую в качестве индикатора для определения текущих данных. График db, который я разрабатываю, должен хранить исторические данные, и для этой цели отношения должны быть в / из свойств отношения. Я опустил всю сложность этого, чтобы осветить проблему.

Проблема в том, что значение to сохраняется как 9223372036854776000, а не указанное мной 9223372036854775807, которое больше, чем Int64.MaxValue. Десериализация с использованием Newtonsoft в .NET, конечно же, взорвалась.

См. снимок экрана, чтобы увидеть проблему

Я мог бы просто уменьшить размер числа, чего было бы достаточно для моего варианта использования, но если бы мне действительно нужно было сохранить это значение, он бы не смог. Я бы предпочел знать, действительно ли это проблема с Neo4j или мне нужно сделать некоторую конфигурацию.

Любая помощь была бы замечательной. Спасибо


person Paul    schedule 10.02.2017    source источник


Ответы (1)


Убедитесь, что вы используете драйвер протокола Bolt для браузера neo4j, int64 не поддерживаются в json, поэтому вы не можете увидеть реальное значение в браузере, если вместо него используется драйвер http (тогда как значение будет правильным в db -> сверьтесь с оболочкой).

Зайдите в настройки браузеров и установите флажок Use bolt protocol when available

введите описание изображения здесь

Перезапустите запрос, и вы увидите правильный результат:

введите описание изображения здесь

person Christophe Willemsen    schedule 10.02.2017