在Neo4j中怎樣使用APOC函數(shù)來過濾字典中的Key

譯者言:本文介紹了在Neo4j中操作字典類型數(shù)據(jù)的三個APOC函數(shù)apoc.map.clean锨天, apoc.map.values晒杈, apoc.map.fromLists获询。

我們有這樣一個場景移层,需要創(chuàng)建一個節(jié)點筷笨,但節(jié)點的屬性要從一個字典對象中獲取憔鬼,這個如何實現(xiàn)呢?我們假設(shè)APOC庫已安裝胃夏。

首先轴或,我們創(chuàng)建一個包含有我Twitter信息的字典對象。

:param document => {
id: 14707949, name: "Mark Needham",
username: "markhneedham", bio: "Developer Relations @neo4j",
location: "London, United Kingdom", url: "http://www.markhneedham.com",
join_date: "8 May 2008", join_time: "5:58 PM",
tweets: 24710, following: 2479, followers: 5054, likes: 1014
}

譯者言:我們可以通過 :params 這個命令看到上面創(chuàng)建字典對象

我們要基于上面這些數(shù)據(jù)創(chuàng)建一個User節(jié)點仰禀,但是只想使用其中部分鍵值侮叮。此時,我們可以使用apoc.map.clean 函數(shù)刪除一些鍵悼瘾,下面代表顯示了我將刪除join_date 和 join_time 鍵囊榜。

WITH ["join_date", "join_time"] AS keysToRemove
RETURN apoc.map.clean($document, keysToRemove, []) AS result

刪除鍵是一種方法审胸,還有另一種方法是指定需要使用的鍵。 通過apoc.help('apoc.map') 能找到所有字典相關(guān)的方法卸勺,但是很不幸砂沛,并沒有發(fā)現(xiàn)取指定鍵值的方法。?

但是我們可以將兩個APOC函數(shù)組合起來使用完成這個效果曙求。首先使用apoc.map.values函數(shù)碍庵,將字典對象中一組指定鍵的值提取到一個數(shù)組中。

WITH ["name", "username", "bio", "following", "followers"] AS keysToKeep
RETURN apoc.map.values($document, keysToKeep)

然后悟狱,再使用apoc.map.fromLists 函數(shù)重構(gòu)出一個新的字典對象静浴。

WITH ["name", "username", "bio", "following", "followers"] AS keysToKeep
RETURN apoc.map.fromLists(keysToKeep, apoc.map.values($document, keysToKeep)) AS result

好,最后挤渐,我們再來看看文章開始的需求:創(chuàng)建一個結(jié)點苹享,使用一個字典中指定鍵的值作為該結(jié)點的屬性。代碼如下:

WITH ["name", "username", "bio", "following", "followers"] AS keysToKeep
MERGE (u:User {id: $document.id })
SET u += apoc.map.fromLists($keysToKeep, apoc.map.values($document, $keysToKeep))

OK浴麻,一切順利得问,希望這些能幫助到你。

原文鏈接:https://markhneedham.com/blog/2019/05/12/neo4j-keep-filter-keys-map-apoc/ 譯者言: 如果我的描述有不準(zhǔn)確或不清楚的地方软免,歡迎在文章下進行交流宫纬。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市膏萧,隨后出現(xiàn)的幾起案子漓骚,更是在濱河造成了極大的恐慌,老刑警劉巖榛泛,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝌蹂,死亡現(xiàn)場離奇詭異,居然都是意外死亡挟鸠,警方通過查閱死者的電腦和手機叉信,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艘希,“玉大人硼身,你說我怎么就攤上這事「蚕恚” “怎么了佳遂?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長撒顿。 經(jīng)常有香客問我丑罪,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任吩屹,我火速辦了婚禮跪另,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘煤搜。我一直安慰自己免绿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布擦盾。 她就那樣靜靜地躺著嘲驾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迹卢。 梳的紋絲不亂的頭發(fā)上辽故,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音腐碱,去河邊找鬼誊垢。 笑死,一個胖子當(dāng)著我的面吹牛喻杈,可吹牛的內(nèi)容都是我干的彤枢。 我是一名探鬼主播狰晚,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼筒饰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了壁晒?” 一聲冷哼從身側(cè)響起瓷们,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秒咐,沒想到半個月后谬晕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡携取,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年攒钳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷滋。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡不撑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晤斩,到底是詐尸還是另有隱情焕檬,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布澳泵,位于F島的核電站实愚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜腊敲,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一击喂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碰辅,春花似錦茫负、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至榕吼,卻和暖如春饿序,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羹蚣。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工原探, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顽素。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓咽弦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胁出。 傳聞我的和親對象是個殘疾皇子型型,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常全蝶。 O...
    我想起個好名字閱讀 5,317評論 0 9
  • 一抑淫、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對于byte類型而言...
    龍貓小爺閱讀 4,261評論 0 16
  • 函數(shù)和對象 1绷落、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念。通過函數(shù)可以封裝任意多條語句始苇,而且...
    道無虛閱讀 4,564評論 0 5
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,101評論 1 32
  • 寫在前面的話 代碼中的# > 表示的是輸出結(jié)果 輸入 使用input()函數(shù) 用法 注意input函數(shù)輸出的均是字...
    FlyingLittlePG閱讀 2,758評論 0 8