Neo4j批量插入获得相同的UUID值/获得相同的返回值。
/**
* @method createAlbumAndTracks
* @param album
* @param tracks
* @returns {any}
*/
createAlbumAndTracks(album:any, tracks:any[]):any {
const query = `
UNWIND {trackList} as track
MERGE (a:Albums ${insertQuery(album)})
CREATE (t:Tracks)
SET
t = track,
t.id = '${uuid()}', // unique UUID expected
t.created = timestamp()
MERGE (a)-[r:ALBUM_TRACKS]->(t)
RETURN t`;
return db.run(query, Object.assign(album, {trackList: tracks}));
}
t.id ='$ {uuid()}'的值相同,尽管它应该是唯一的UUID。每次创建新节点时如何调用该函数?
因为您只创建一次查询,但是随后为每个数组项创建一个轨道。
您应该将uuid添加到跟踪列表(作为对象)
tracklist = [{track:"Track", uuid:uuid()},....]
然后在查询中使用track.track
和track.uuid
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句