1

我是 Clojure 的新手,我遇到了 Monger 的问题。

我正在尝试将 Monger 与 Friend 一起使用。我有这个ns:

(ns cemerick.friend-demo.users
  (:require [cemerick.friend.credentials :refer (hash-bcrypt)]))

(def users (atom {"friend" {:username "friend"
                            :password (hash-bcrypt "clojure")
                            :pin "1234" ;; only used by multi-factor
                            :roles #{::user}}
                  "friend-admin" {:username "friend-admin"
                                  :password (hash-bcrypt "clojure")
                                  :pin "1234" ;; only used by multi-factor
                                  :roles #{::admin}}
(derive ::admin ::user)

当我尝试使用 Monger 将其添加到数据库时

(mc/insert "users"  {:username "friend",
                     :password "$2a$10$YGcqRFL67J5NDo7hfkVslerDYc1iIGBy0js871wxnXxOvdvJZ4Aua",
                     :pin "1234",
                     :roles #{:cemerick.friend-demo.users/user}})

Monger 序列#{:cemerick.friend-demo.users/user}化为"user"有没有办法按原样放置该值,或者有什么方法可以更改"user"#{:cemerick.friend-demo.users/user}

4

1 回答 1

1

它可能会返回"user",因为该name函数只返回名称。

(name :cemerick.friend-demo.users/user)
;=> "user"

您可以str在将它们插入数据库之前调用每个关键字。

(str :cemerick.friend-demo.users/user)
;=> ":cemerick.friend-demo.users/user"
于 2013-06-20T15:24:12.243 回答