2015-03-17 2 views
0

При попытке обновить данные тегов базы данных на столбах У меня есть функция, которая выглядит какДобавление новых данных в организации в Datomic

(defn add-tag-to-post [eid email tags] 
    (d/transact conn [{:db/id eid, 
        :author/email email, 
        :post/tag tags}])) 

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

Пример:

{:title "Straight edges", 
:content "fold instead of tearing it. ", 
:tags "scissor-less edges", ;;check out these awesome tags 
:author "[email protected]" 
:eid 1759} 


(add-tag-to-post 1759 "[email protected]" "art") 
;;desired behavior: adds tag "art" to the list of tags 

(get-post-by-eid 1759) 
;;returns 

{:title "Straight edges", 
:content "fold instead of tearing it. ", 
:tags "art", ;;not cumulative tag addition ;/ 
:author "[email protected]" 
:eid 1759} 

Как это может быть достигнуто?

Имеет ли смысл более просто запрашивать время жизни объекта вместо этого?

ответ

1

Вам необходимо, чтобы ваш атрибут :post/tag имел :cardinality/many - см. :db/cardinality в http://docs.datomic.com/schema.html.

По умолчанию атрибуты имеют :cardinality/one, который автоматически убирает старые значения при их перезаписывании. :cardinality/many отменяет это поведение.

Смежные вопросы