如何使用monger和Clojure将文档添加到mongodb中



我以前从未使用过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_discovery" {:sessions converted-document-to-persist} {} :upsert true))

我正在使用monger:

http://clojuremongodb.info/

我的println和timbre/speey语句正在将这些数据打印到终端输出:

在将数据持久化到数据库中:{"serverUsed":"/12.0.0.1:27017","updatedExisting":false,"upseted":{"$oid":"51068004440077296cfa67d6b"},"n":1,"connectionId":4,"err":null,"ok":1.0}

如果我在命令行登录MongoDb,那么集合似乎仍然是空的:

db.timeout_discovery.find(){"_id":ObjectId("51017c5fa86c7bcc3d423c4d"),"timeout":"discovery"}

有一个文档,但其中除了"超时"one_answers"发现"之外什么都没有。

我看了看这里,试图弄清楚该怎么办,但我尝试的每一种变体都失败了:

http://clojuremongodb.info/articles/updating.html

此行:

(convert/to-db-object session-data))

返回这个文档(但我在这里缩短了它,因为原始文档很长,充斥着你在这里看到的更多HTML):

在获取待持久化的数据时,要持久化的文档为:{"e6e20a2c-cb46-498c-b2f2-743e2b38b917":{"行程为字符串":"\n\t\t\t

http://www.super.com/mexico/bars/2012-food-drink-award-nominees-best\"class="fn给定名称url\">2012年食品饮料奖提名:最佳新啤酒吧

\\n\t\t\t投票现已关闭\n点击此处查看结果查看更多餐厅+酒吧 \\n\t\t\thttp://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\t\t

http://www.super.com/mexico/sex-dating/summer-dates-in-mexico-bars-and-restaurants\"class=\"fn给定名称url\">夏季约会:墨西哥酒吧和餐馆的餐饮约会

\n\t\t\t性&测年

\在这些夏季约会中,在墨西哥的热点地区吃晚饭或喝饮料。如果你想追求一个痴迷于美食的伴侣,那么这一季除了标准的晚餐和电影之外。查看纽约五个以饮食为重点的夏季约会。。。 \\n\t\t\thttp://www.super.com/mexico/sex-dating/summer-dates\">http://media.super.com/images/100453911/150/113/image.jpg\"/>\n\n\n\t\t\t

http://www.super.com/mexico/restaurants/organic\"class=\"fn给定名称url\">有机

\n\t\t\t食品&饮料,美国,亚洲

\\n\n\n$\n\n \n \n \nhttps://foursquare.com/intent/venue.html\"data context=\"vcard-Content-Venue-50137\">保存到foursquare \n\n\n\n Tribeca fro-yo狂热分子可以在这家有机健康食品酒吧的第二个位置满足他们对健康的渴望。明亮的外卖店配有木镶板和白色和绿色的柜台,还供应新鲜的挤压果汁和奶昔,… 编辑\n\t\t\t\n\t\nhttp://www.super.com/mexico/restaurants/organic\">http://media.super.com/images/100461855/150/113/image.jpg\"/>\n\n\n\t\n格林威治街275号(默里街和沃伦街之间),纽约,10007\n\t \\n\t\t\t\n\t\t\t平均课程:9美元。AmEx、Disc、MC,。。。\t \n \nhttp://www.super.com/mexico/restaurants/organic\">\n\t\t\t\t\t\t\t\t\t获取信息\n\t\t\t\t\t","用户名":"whoandwhy@geocities.com","创建时间:"2013-01-28T13:41:53","ip地址":"10.0.1.53","cookie id":"timeout-kiosk5903266","问答":{"你对什么感兴趣":[":食物和酒吧"],"和谁在一起":[":成年人"],"你的电子邮件是什么":whoandwhy@geocities.com

那么,为什么这不能拯救?

我没有在终端输出中看到任何错误,尽管如果有错误,我希望得到关于如何捕获和查看它的建议。

如果没有错误,我只是MongoDb或monger的语法错误吗?

这里是Monger的作者。您在什么环境中运行此代码?可能是身份验证问题Monger默认使用"安全"写入问题,因此写入永远不会静默失败(就Monger而言,您仍然需要处理异常)。根据服务器响应您已经发布了,编写成功了(您可以在响应文档中看到"ok":1.0)。

如果您对函数参数有疑问,请参阅Monger的文档。我强烈建议从REPL中的"入门"指南开始。

相关内容

  • 没有找到相关文章

最新更新