私はマップのこのベクトルを持っている:clojureでは単純なデータ正規化はどのようにして行われますか?
(def db
[{:id "foo" :content "foo-content" :tags []}
{:id "bar" :content "bar-content" :tags []}
{:id "baz etc" :content "baz-content" :tags []}])
私はこのようなidによって値への直接アクセス、マップのマップを得るためにそれを変換したい:
{:foo {:content "foo-content" :tags []}
:bar {:content "bar-content" :tags []}
:baz-etc {:content "baz-content" :tags []}
これは私の試みです。
(defn normalize [db]
(into {}
(for [item db]
[(:id item) (dissoc item :id)])))
よくする方法(キーコンバージョンはもっと考えていますか?)?
私は使用できるライブラリはありますか?
ありがとうございます!
あなたが持っているものは良いと思います。その一般的な名前が「正規化」されているにもかかわらず、その関数は特定のデータ変換を行います。 – glts
datascriptは、あなたが簡単にアクセスできるように、任意の属性のための索引を作成します(これはあなたがやっていることです)。 – ClojureMostly