【问题标题】:Is there a way to selectList without any filter or select options in Persistent Haskell?有没有办法在 Persistent Haskell 中不使用任何过滤器或选择选项来选择列表?
【发布时间】:2015-09-25 17:18:28
【问题描述】:

美好的一天。

通过编写一个小项目,我正在学习 Yesod 几周(我对 Haskell 很陌生)。我使用 MongoDB 作为数据库并通过持久性 mongoDB 访问它。 当我想运行没有任何条件或排序内容的查询时,例如

IN MONGODB SHELL
> db.comments.find();

至少在the Yesod Book我找不到正确的方法。

我试图写一个相同的解决方法。

IN YESOD REPL
*Application> db $ selectList [CommentContent !=. ""] []

但它很糟糕......

transact-sql 查询中的相同问题。例如

IN YESOD REPL
*Application> db $ count [CommentContent !=. "" ]

【问题讨论】:

  • 只是猜测:试试db $ selectList [] [] ?

标签: haskell yesod


【解决方案1】:

写你想要的类型

myData :: [Entity YOUR_ENTITY_HERE] <- selectList [] []

(我在这里使用了ScopedTypeVariables,但如果可以通过其他方式推断类型,则不需要)

【讨论】:

  • 非常感谢。您能给我一个关于计数的建议吗?提前致谢。
  • "计数?" Database.Persist.Query ;)
  • 另一种允许编译器推断Entity类型的方法是指定FilterSelectOpt的类型(例如users &lt;- runDB $ selectList ([] :: [Filter User]) []),这在Persistent中很常见/Yesod 代码库。我个人更喜欢@josejuan 的方式。
  • @MaxGabriel , 你解决了我的计数问题 haskell db $ count ([]::[Filter Comment])
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2020-07-07
  • 2023-03-28
  • 1970-01-01
  • 2017-07-06
  • 2022-01-05
  • 1970-01-01
相关资源
最近更新 更多