Haskell是否支持MongoDB的查询运算符,例如“$ in”?

时间:2013-12-12 16:14:44

标签: haskell mongodb-query

要检索一组文档,其某些字段(如作者)是一组值中的任何一个,haskell的mongodb如何做到这一点?因为这对我来说并不明显。 感谢任何提示和帮助!

1 个答案:

答案 0 :(得分:2)

如果您使用的是mongoDB软件包,请注意它接受任意文档为Selector。因此,您可以使用任何mongodb支持,包括$in

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ExtendedDefaultRules #-}

import Database.MongoDB
import Control.Monad.IO.Class (liftIO)

main = do
  pipe <- runIOE $ connect $ host "127.0.0.1"
  e <- access pipe master "testdb" $ do
    insertMany "test" [
      ["i" =: 1, "name" =: "Name1"],
      ["i" =: 2, "name" =: "Name2"],
      ["i" =: 3, "name" =: "Name3"]
      ]
    rest =<< find (select ["i" =: ["$in" =: [1, 3]]] "test")
  close pipe
  print e

输出:

Right [[ _id: 52a9ea3008d0cf401e000000, i: 1, name: "Name1"],[ _id: 52a9ea3008d0cf401e000002, i: 3, name: "Name3"]]

与haskell和mongodb的快乐黑客攻击:)