2013-06-20 2 views
1

Я новичок в Clojure, и у меня проблемы с Monger.Не разрешаю сериал Monger

Я пытаюсь использовать пользователя Monger с другом. У меня есть эта нс:

(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) 

Когда я пытаюсь добавить это в базу данных с помощью торговца с

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

Монгером сериализует #{:cemerick.friend-demo.users/user} в "user" Есть ли способ поставить это значение как есть или есть ли способ изменить "user" на #{:cemerick.friend-demo.users/user}?

ответ

1

Это, вероятно, возвращает "user", потому что функция name возвращает только имя.

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

Вы могли бы уйти с заходом str по каждому ключевому слову, прежде чем вставлять их в базу данных.

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