如何使用monger和Clojure向mongodb添加文档?
我以前从未使用过MongoDb,也从未使用过Monger。我正在开发Clojure应用程序。我只是希望能够添加一个文档作为备份。这是我的一些代码:如何使用monger和Clojure向mongodb添加文档?,mongodb,clojure,monger,Mongodb,Clojure,Monger,我以前从未使用过MongoDb,也从未使用过Monger。我正在开发Clojure应用程序。我只是希望能够添加一个文档作为备份。这是我的一些代码: (defn convert-data-to-be-persisted [session-data] (convert/to-db-object session-data)) (defn persist-data-to-database [converted-document-to-persist] (mc/update "timeout_d
(defn convert-data-to-be-persisted [session-data]
(convert/to-db-object session-data))
(defn persist-data-to-database [converted-document-to-persist]
(mc/update "timeout_discovery" {:sessions converted-document-to-persist} {} :upsert true))
我正在使用monger:
我的println和timber/spy语句正在将这些数据打印到终端输出:
在将数据持久化到数据库中:{serverUsed:/127.0.0.1:27017,UpdateExisting:false,upserted:{$oid:510680444077296acfa67d6b},n:1,connectionId:4,错误:null,确定:1.0}
如果我在命令行登录MongoDb,则集合似乎仍然为空:
db.timeout\u discovery.find
{u id:ObjectId51017c5fa86c7bcc3d423c4d,超时:发现}
有一个文档,但除了超时和发现之外,文档中没有任何内容
我在这里寻找,试图找出该做什么,但我尝试的每一个变体都失败了:
这一行:
(convert/to-db-object session-data))
返回此文档,但我在此处将其缩短,因为原始文档很长,并且包含了您在此处看到的更多HTML:
在要持久化的get数据中,要持久化的文档是:{e6e20a2c-cb46-498c-b2f2-743e2b38b917:{行程作为字符串:\n\t\n\t\thttp://www.super.com/mexico/bars/2012-food-drink-award-nominees-best\class=\fn名字url\>2012年食品和饮料奖提名人:最佳新啤酒酒吧\n\t\t\t\t\n\n投票现已结束\n在此处查看结果在餐厅+酒吧查看更多信息\n\t\n\t\nhttp://www.super.com/mexico/bars/2012-food-drink-award-nominees-best-new-beer-bar\>http://media.super.com/images/100131935/150/113/image.jpg\/>\n\n\n\t\n\t\thttp://www.super.com/mexico/sex-dating/summer-dates-in-mexico-bars-and-restaurants\class=\fn给定名称url\>夏季日期:墨西哥酒吧和餐厅的餐饮日期\n\t\t\t\t性与约会\n\n\n在夏季约会期间,在墨西哥的热点地区吃晚餐或喝饮料。如果你想追求一个沉迷于美食的伴侣,本季就不要只吃标准的晚餐和看电影了。看看五种食物和饮料-纽约以饮酒为主题的夏季约会…\n\t\n\t\nhttp://www.super.com/mexico/sex-dating/summer-dates\>http://media.super.com/images/100453911/150/113/image.jpg\/>\n\n\n\t\n\t\thttp://www.super.com/mexico/restaurants/organic\class=\fn名称url\>有机\n\t\t\t\t食品和饮料、美国、亚洲>\n\n\n\n$\n\n\n\n\n\nhttps://foursquare.com/intent/venue.html\data context=\vcard-Content-Vince-50137\>保存到foursquare\n\n\n Tribeca fro yo狂热者可以在第二个位置满足他们所有的健康渴望有机健康食品吧。明亮的外卖店配有木镶板和一个白绿相间的柜台,还提供鲜榨果汁和冰沙,Edit\n\t\n\t\n http://www.super.com/mexico/restaurants/organic\>http://media.super.com/images/100461855/150/113/image.jpg\/>\n\n\n\n\t\n 275克reenwich街,纽约默里街和沃伦街之间,10007\n\t\n\t\t\n\t平均课程:$9。美国运通,Disc,MC,…\t\n\nhttp://www.super.com/mexico/restaurants/organic\>\n\t\t\t\t\t\t\t\t\t\t
\tGet信息\n\n\n\t\t,用户名:whoandwhy@geocities.com,创建于:2013-01-28813:41:53,ip地址:10.0.1.53,cookie id:timeout-kiosk5903266,问答:{你对什么感兴趣:[食物和酒吧],你和谁在一起:[成年人],你的电邮地址是:whoandwhy@geocities.com,你在纽约呆多久?:两周
那么,为什么这不能拯救
我没有在终端输出中看到任何错误,但是如果有错误,我希望得到关于如何捕获和查看它的建议
如果没有错误,我只是把MongoDb或monger的语法搞错了吗 这里是Monger的作者。您在什么环境中运行此代码?它可能是一种身份验证 问题Monger在默认情况下使用安全写入关注点,因此写入永远不会在静默状态下失败 就Monger而言,您仍然必须处理异常。根据服务器的响应 您已经发布了,写入成功,您可以在响应文档中看到ok:1.0
如果您对函数参数有疑问,请参阅Monger的文档。我强烈建议从REPL中的入门指南开始。update中的第三个参数是您要设置的新对象。将空贴图作为新对象传递。这是正确的吗?我应该解释我已经尝试过的所有变化。我试过用几种不同的方法来交换论点的顺序。所有这些都没有区别。该文档没有到达MongoDb,我看不出有任何错误。