Как обновить документ в MongoDB, если поле задано с помощью karras & clojure? - PullRequest
2 голосов
/ 18 июля 2011

У меня есть коллекция в MongoDB, мне нужно обновить определенные Документы для этого, когда поле задано в этом Документе с помощью karras API {Закрывающая оболочка для драйвера mongo java} в clojure webприложение?

Я придумала это решение, но оно не работает так, как я ожидаю.

(ns addressbook.repository
  (:use karras.core
    karras.collection
    karras.sugar))

(def test-db (collection (connect) :mydb :user))

(defn no-of-docs []
  (count-docs test-db))


(defn insert-rec [rec]
  (insert test-db rec))

(defn fetch-rec []
  (fetch-all test-db))

(defn filter-db [data]
  (map #(dissoc % :_id) data))

(defn delete-rec [rec]
  (delete test-db (where (eq (str (:name rec)) (str :name)))))

mydb - это база данных в моем MongoDB, а user - это коллекция, в которой я сохраняю некоторые документы.Мне нужно удалить документ, в котором поле : имя совпадает с полем : имя карты записи, которое я передал этой функции delete-rec .

Спасибо.

1 Ответ

1 голос
/ 18 июля 2011

Попробуйте:

(delete test-db (where (eq :name (:name rec))))
...