gpt4 book ai didi

mongodb - 如何使用带有 Yesod 的 $all 运算符在 mongo 上查找元素?

转载 作者:可可西里 更新时间:2023-11-01 10:45:01 26 4
gpt4 key购买 nike

问题:

我有一个要从 检索的 Person 模型:

Person
name Text
favoriteFoods [Text]

这是我的功能:

getPersonsByFoods :: [Text] -> DB [Entity Person]
getPersonsByFoods foods = selectList [PersonFavoriteFoods ??? foods] []

我看了一下Query filter combinators但我没有找到任何可以帮助我处理列表的功能。我需要某种 containsAll 函数。

这应该是最终的 mongo 查询:

PersonModel.find({ favouriteFoods: { "$all" : ["sushi", "burger"]} });

元:

- yesod >=1.6 && <1.7
- yesod-core >=1.6 && <1.7
- yesod-static >=1.6 && <1.7
- persistent >=2.9 && <2.10
- persistent-mongoDB >=2.8 && <2.9
- mongoDB
- persistent-template >=2.5 && <2.9

问题:

我如何使用 Yesod 实现此结果?

最佳答案

我想你可以使用 <-.

getPersonsByFoods :: [Text] -> DB [Entity Person]
getPersonsByFoods foods = selectList [PersonFavoriteFoods <-. foods] []

或者,如果您还使用 esqueleto你可以:

getPersonsByFoods :: [Text] -> DB [Entity Person]
getPersonsByFoods foods = selectList [PersonFavoriteFoods `in_` valList foods] []

关于mongodb - 如何使用带有 Yesod 的 $all 运算符在 mongo 上查找元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57028107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com