gpt4 book ai didi

node.js - 如何使用 Cypher 在 Neo4j 中只获取 friend 的 friend

转载 作者:太空宇宙 更新时间:2023-11-04 01:56:09 26 4
gpt4 key购买 nike

你好,我想建立一个社交网络。目前我正在尝试显示“ friend 的 friend ”,以便我可以向用户推荐 friend 。我正在 Node.js 服务器中实现 Neo4j 查询。问题是我当前的 Cypher 语法出现语法错误。我希望有人可以查看该查询并告诉我出了什么问题。

密码语法:

MATCH (n:User{mongoId: {idNeo}}) 
MATCH n-[:FRIENDS_WITH*2]-m
WHERE NOT n-[:FRIENDS_WITH]-m
RETURN m

整个路线:

routes.get('/users/friendsoffriends/:id', function(req, res) {
//res.contentType('application/json');
var ids = [];
const id = req.param('id');

session
.run("MATCH (n:User{mongoId: {idNeo}}) MATCH n-[:FRIENDS_WITH*2]-m WHERE NOT n-[:FRIENDS_WITH]-m RETURN m", {idNeo: id})
.then(function(result) {
result.records.forEach(function(record){
ids.push(record._fields[0].properties.mongoUserId);
});
console.log(ids);
return ids;
})
.then((ids)=>{
User.find({_id: { $in: ids}})
.then((blogPost) => {
res.status(200).json(blogPost);
})
})
.catch((error) => {
res.status(400).json(error);
})
});

最佳答案

您的 Cypher 查询在图形模式中的 Node 周围缺少括号。试试这个:

MATCH (n:User{mongoId: {idNeo}}) 
MATCH (n)-[:FRIENDS_WITH*2]-(m)
WHERE NOT (n)-[:FRIENDS_WITH]-(m)
RETURN m

关于node.js - 如何使用 Cypher 在 Neo4j 中只获取 friend 的 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47913867/

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