问题描述
嗨,我正在使用带有neo4j-driver的nodejs,我创建了这样的关系(USER- [来自对象的值]-> SUBREDDIT)
用户名是预定义的,因此这不是问题,但是subreddit名称和关系值位于对象内部。
这个对象真的很大,所以我宁愿使用一些密码魔术来在这个对象上循环并建立关系,糟糕的是我不知道该怎么做。
我还想知道这是否是一个好方法,或者只是在JavaScript中循环该对象并进行更多查询是否更有效
我正在尝试进行写查询,对象的名称(如“ 63”)是没有意义的,目标节点的名称位于sub属性中,其余的是关系属性
'62': {
n: 1,ups: 15.730142943532986,gilded: 0,upVote_ratio: 0.9253025260901756,num_comments: 2.7759075782705267,num_crossposts: 0,score: 15.730142943532986,sub: 'r/aww'
},'63': {
n: 2,ups: 33.58852601401853,upVote_ratio: 1.2799872062537179,num_comments: 7.8618886115333115,score: 33.58852601401853,sub: 'r/FreeKarma4U'
}
解决方法
我为您提供了一个例子。告诉我是否符合您的目的! :-)
const products = [
{ name: 'apple',price: 30 },{ name: 'orange',price: 40 },{ name: 'lemon',price: 50 },]
const driver = neo4j.driver(uri,neo4j.auth.basic(user,password))
const main = async () => {
try {
await driver.verifyConnectivity()
console.log('Driver created')
} catch (error) {
console.log(`connectivity verification failed. ${error}`)
}
const session = driver.session()
try {
await session.run(`
UNWIND $products as product
CREATE (p: Product)
SET p += product
RETURN COLLECT(p) as products
`,{products})
} catch (error) {
console.log(`unable to execute query. ${error}`)
} finally {
await session.close()
}
await driver.close()
}
main()