所以,我的想法是使用以下代码在haskell中运行MongoDB查询完整示例:https://gist.github.com/1337864HaskellMongoDB驱动程序简介:https://github.com/TonyGen/mongoDB-haskell/blob/master/doc/Example.hs管道我想把它变成这样,这样我就可以假装运行函数是一个“db”,就像在普通的mongo驱动程序中一样。db这是我编写的函数:mdb::(MonadIOm)=>String->String->IO(Actionma->m(EitherFailurea))mdbhostname
http://www.yesodweb.com/book/persistent中没有任何文档或示例我也没有找到任何原始查询的例子(显然,rawQuery不适用于persistent-mongoDB)。我需要使用地理特殊选择器($near),这就是我不能只调用selectList的原因。但是,有一种方法可以用Database.MongoDB做一些我想做的事情:rawrecs>=restmapM_(liftIO.putStrLn.show)rawrecs然后将查询结果转化为持久化实体。是的,它有效,但看起来有点棘手。有人知道使用persistent-mongoDB执行此操作的更正确方法吗?
我在MongoDB中使用持久化。selectList查询返回完整的产品列表并将它们加载到内存中;我只想返回列的子集。Q1)有没有办法只选择列的子集以便加载更多数据。为了更有效的查询?相当于mongoDB投影或SQLSELECT也许类似于selectListCols函数,它也将属性列表作为参数并返回列表类型的列值而不是实体值。Q2)如果没有,我必须求助于手动Database.MongoDB查询,我可以从Persistent库中使用什么实用程序来修改selectList生成的mongodb查询,以便我可以向其添加mongodb投影并获取BSON值? 最佳答案
我使用mongodb并构建了很多像这样的bson类型。["group"=:"default","views"=:0]指定确切的类型真的很烦人。除非可以扣除,否则我必须这样构造它。["group"=:("default"::Text),"views"=:(1::Int)]因此,给{-#LANGUAGEExtendedDefaultRules#-}pragma修复它,但不是理想的类型。它默认为Integer,这出于性能原因并不好,而String出于一致性原因也不好。是否可以更改默认值并使其默认为Int和Text而无需始终手动限定类型?谢谢。 最佳答案
我正在尝试创建一个Persistent类型,其建模类似于:MyModelsomethingTextsomethingElse[Int]我得到一个错误:Illegaltypeconstructororclassname:`[Int]'WhensplicingaTHdeclaration:dataMyModel=MyModel{myModelSomething::Text,myModelSomethingElse::[Int]}deriving(Show,Read,Eq)感谢任何帮助。 最佳答案 这只是Persistent语法的一个限制
使用haskellmongodb驱动程序进行文本搜索的状态如何?mongo中现在有类似于SQL变体的“LIKE”运算符,那么搜索集合或整个数据库以查找特定文本字符串的最佳方法是什么?我读过一些人引用外部工具,但我也可以看到一些文本搜索是在2.4mongo版本中实现的,这是通过命令界面完成的。从控制台执行它应该没有任何问题,但我如何从haskell驱动程序执行它?我在驱动程序API中找到了“runCommand”函数,看起来应该可以向服务器发送“文本”命令,但签名显示它只返回一个文档——而不是文档列表。那么如何正确完成呢?我如何有效地在集合或数据库中搜索单词或句子,以便它返回包含该单词的
关闭。这个问题需要更多focused.它目前不接受答案。想改善这个问题吗?更新问题,使其仅关注一个问题editingthispost.4年前关闭。Improvethisquestion我对Haskell还很陌生;我已经阅读了无数关于它的教程和其他资源,但是每当我决定尝试编写程序来做任何远程有用的事情时,我通常甚至不知道从哪里开始。我最近在听一个播客,其中GabrielGonzalez谈到保持动力的最佳方法是将它实际用于项目并开始写作,所以我真的想用它来完成我手头的任务。所以,我有一个Mongo数据库,它不断更新,定期抓取项目,还有一个Elasticsearch数据库。前者会经常更新我之
我一直在寻找使用Haskell记录存储到MongoDB数据库中的ORM。HaskellWiki有alistofsomelibraries不一定是ORM。Persistent是最接近我需要的一个,但它在很大程度上取决于我不想要的TemplateHaskell。我只想将纯Haskell记录映射到数据库。 最佳答案 您可以在没有TemplateHaskell的情况下使用Persistent,您只需要手动定义PersistEntity实例。目前有些人正在为TH不可用的情况(例如,ghc-iphone)这样做。
我正在尝试在拼接中使用mongodbhaskell驱动程序(snap驱动程序似乎因snap>0.5而损坏)访问mongo。这是目前为止我所得到的:testSplice::SpliceAppHandlertestSplice=dorecord我知道我需要在那里使用liftIO,因为mongo操作发生在IOmonad内部,我想把它拉回来。我的理解失败的地方是编译该拼接的结果:Couldn'tmatchexpectedtype`IOa0'withactualtype`Actionm0[Database.MongoDB.Document]'很抱歉发布“请将代码发送给我”问题,但我不知所措:我哪
我是Haskell的新手,但我觉得我对所有方面都有不错的理解。我目前正在尝试使用haskell的非官方mongoDB绑定(bind)。如果您查看此处的代码:http://github.com/srp/mongoDB/blob/master/Database/MongoDB.hsconnect::HostName->[ConnectOpt]->IOConnectionconnect=flipconnectOnPort(Network.PortNumber27017)如您所见,此方法返回/解析到一个IO连接。然而,所有实际与数据库交互的方法都采用简单的Connection作为参数。例如:d