monger를 사용하여 항목 목록을 받아 mongo에 저장하는 기능이 있습니다. 이상한 점은 multi:true
을 지정하지 않으면 한 레코드 만 업데이트되고 나머지 레코드는 무시된다는 것입니다. monger가 mongodb에 대한 모든 업데이트를 유지하기 위해 다중 플래그가 필요한 이유를 모르겠습니다.monger가 목록의 모든 레코드 대신 하나의 레코드 만 업데이트하는 이유
(defn update-entries
[entries]
(let [conn (mg/connect)
db (mg/get-db conn "database")]
(for [e entries] (mc/update db "posts" {"id" (:id e)} {$set {:data (:data e)}} {:multi true}))))
하지만 출력을 볼'for'로 변경 그래서 업데이트를보고 있지 않다 때문에 :
그런 경우에는 실현을 강제로
doall
에for
포장. 나는 당신이 설명했던 것을 이해하고, 당신이 'id'와 일치하여 멀티라고 설정했기 때문에 스스로 그렇게 말했습니다 : 사실은 중요하지 않아야합니다 - 그러나 이것이 내가 이해하려고하는 문제입니다. –@SeymourCakes 결과가 필요하면'doseq' 대신'doall'을 사용할 수 있습니다. 어쨌든 당신은 어떻게 든 시퀀스 실현을 강제 할 필요가 있습니다. – soulcheck