2

私は MongoDB にコレクションを持っています。特定のドキュメントを更新する必要があります。フィールドがkarras API {Mongo Java ドライバーへの clojure ラッパー} を使用してそのドキュメントに指定されている場合、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はいくつかのドキュメントを保存するコレクションです。:name フィールドが、そのdelete-rec関数に渡した rec マップの:nameフィールドと一致するドキュメントを削除する必要があります。

ありがとう。

4

1 に答える 1

1

試す:

(delete test-db (where (eq :name (:name rec))))
于 2011-07-18T12:16:18.830 に答える