2011-07-18 31 views
2

私はMongoDBの中でコレクションを持っているが、私はフィールドがClojureのWebアプリケーションにkarras API {のmongo JavaドライバへのClojureラッパー}とその文書に与えられたとき、その上の特定のドキュメントを更新する必要がありますか?どのようにMongoDBでドキュメントを更新するには?

私は、このソリューションを作ってみたが、私は期待して、それが働いていません。

(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のデータベースである、とユーザーは、私はいくつかのドキュメントを保存した上でコレクションです。私は文書:名前のフィールドが、レックマップのフィールドと一致するフィールドを削除する必要があります。このフィールドには、の削除-rec関数が渡されます。

ありがとうございました。

答えて

1

試してみてください。

(delete test-db (where (eq :name (:name rec)))) 
+0

おかげで、実際には、それは_gte_ない_eq_しなければならない、私のミスですが、。しかし、それはまた動作しません! –

+0

エラーが発生しますか?あなたはどこに何がマッチすると確信していますか?挿入物も含まれているより完全な例を投稿できますか? – mac

+0

私はすべてのエラーを得ることはありませんが、ドキュメントをデータベースコレクションには削除されません。 Insert関数はそこにあり、期待通りに動作します{データベースに_rec_マップを挿入}。それが動作するかどうか –

関連する問題