Neo4J всегда использует номера NodeJS по умолчанию с плавающей запятой при использовании параметризованных запросов - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь использовать Neo4j с NodeJS, используя параметры для сохранения некоторых значений в узле Neo4j, что-то вроде этого:

{
    query: 'MATCH (n{id:$id}) SET n.n1 = $number RETURN n',    
    params: { id: 'someId', number: 15 } 
}

Когда я просматриваю данные в Neo4j, данные всегда появляютсякак {n1: 15.0}, а не {n1: 15}.Есть ли простой способ сохранить числа в виде целых чисел, если в числе нет явного десятичного числа?

1 Ответ

1 голос
/ 15 апреля 2019

Вы можете использовать функцию TOINTEGER() для преобразования в целое число:

MATCH (n{id:$id}) SET n.n1 = TOINTEGER($number) RETURN n

[ОБНОВЛЕНО]

Если вы используете официальный neo4j драйвер Javascript , то вам следует ознакомиться с его специальной поддержкой целых чисел в Javascript (чтобы обойти тот факт, что Javascript не поддерживает 64 -битные целые числа, используемые neo4j).

В вашем случае вы должны использовать метод драйвера neo4j.int() для передачи целочисленного значения параметра, в противном случае оно будет передано как число с плавающей запятой.

Например:

var neo4j = require('neo4j-driver').v1;

var result = session.run(
  "MATCH (n{id:$id}) SET n.n1 = $number RETURN n",
  {id: 'abc123', number: neo4j.int(15)}
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...