簡體   English   中英

Clojure 關聯/關聯

[英]Clojure assoc/assoc-in

(def db-sample 
{
:person [{:person/id 9 :name "rich" :surname "hickey" :join-date "04.04.2016" :experience :experience/lead :loyality-level :loyality-level/more-than-seven-years :work-type :work-type/tenure :work-time :work-time/part-time}]

:employees/developer-team [{:frontend  [[:person/id 1] [:person/id 2] [:person/id 3] [:person/id 4]]
}

大家好,我正在練習 assoc 函數,所以我想創建一個示例數據庫,只使用 assoc 函數來進行練習。

我檢查了它的快速文檔,但沒有關於如何創建矢量並將數據放入其中的解釋。 我在上面留下了一個例子,我的問題是如何使用 assoc 函數創建 db-sample 數據? (或者更簡單更好的選擇)

實際上,如果你想模擬一個數據庫,它首先必須是一個原子,這樣你就可以就地更新。 而你的“添加一個人”將是這樣的:

(def db-sample (atom {:person [] :employees/developer-team []})

(swap! db-sample update :person #(conj % new-person))

當您的數據庫過於嵌套時,事情會變得棘手 - 有一些庫可以解決這個問題,例如 spectre。 但是保持數據庫相對平坦也是恕我直言的好習慣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM