gpt4 book ai didi

javascript - Neo4j 插入具有各种关系的 Node

转载 作者:搜寻专家 更新时间:2023-10-30 23:04:16 25 4
gpt4 key购买 nike

我尝试创建“recipe”、“ingredients”和“user” Node (作者)。

基本上,一个作者可以有很多食谱;食谱与配料具有多对多关系。

我有这个问题:

MATCH (user:User)
WHERE ID(user) = {uid}
CREATE (recipe:Recipe {name:"receta 4"})
WITH ingredient
MATCH (ingredient:Ingredient)
WHERE ID(ingredient) = node(7)
CREATE (recipe)-[ri:HAS {unit: "vasos", cant: 1}]-(ingredient)
WITH ingredient
MATCH (ingredient:Ingredient)
WHERE ID(ingredient) = node(6)
CREATE (recipe)-[ri:HAS {unit: "cditas", cant: 2}]-(ingredient)
CREATE (user)-[:PREPARE]->(recipe)
RETURN recipe

但是,我得到错误:

ingredient not defined (line 4, column 7)
"WITH (ingredient:Ingredient)"
^
Neo.ClientError.Statement.InvalidSyntax

对于这个查询,哪种形式是正确的?

我的js代码:

Recipe.create = function (req, callback) {

var data = req.body;
var uid = parseInt(req.params.id);

var query = [
'MATCH (user:User)',
'WHERE ID(user) = {uid}',
'CREATE (recipe:Recipe {data})',
];

// set ingredients
var ingId;
var unit;
var cant;
for (var i = data.ingredients.length - 1; i >= 0; i--) {
ing = data.ingredients[i];
ingId = parseInt(ing.id);
unit = ing.unit;
cant = ing.cant;
query.push(
'MATCH (ingredient:Ingredient)',
'WHERE ID(ingredient) = node(' + ingId + ')',
'CREATE (recipe)-[ri:HAS {unit: "'+unit+'", cant: '+cant+'}]-(ingredient)'
);
}

query.push(
'CREATE (user)-[:PREPARE]->(recipe)',
'RETURN recipe'
);

query.join("\n");

db.cypher({
query:query,
params:{
data: data,
uid: uid
}
}, function (err, results) {
if (err) return callback(err);
console.log(results)
callback(null, results);
});
};

最佳答案

我认为问题在于引用下一个要创建的 Node 的 WITH 子句,而不是引用要创建的前一个 Node 。此外,代码试图创建无向关系。

试试这个:

MATCH (user:User)WHERE ID(user) = {uid}CREATE (recipe:Recipe {name:"receta 4"})WITH recipeMATCH (ingredient:Ingredient)WHERE id(ingredient) = 7CREATE (recipe)-[ri:HAS {unit: "vasos", cant: 1}]->(ingredient)WITH recipeMATCH (ingredient:Ingredient)WHERE ID(ingredient) = 6CREATE (recipe)-[ri:HAS {unit: "cditas", cant: 2}]->(ingredient)CREATE (user)-[:PREPARE]->(recipe)RETURN recipe

关于javascript - Neo4j 插入具有各种关系的 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28697807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com