gpt4 book ai didi

mongodb - 如何在 persistent-mongoDB 中使用 MongoDB 查询选择器? (Yesod)

转载 作者:可可西里 更新时间:2023-11-01 09:55:49 25 4
gpt4 key购买 nike

http://www.yesodweb.com/book/persistent 中没有任何文档或示例

我也没有找到任何原始查询的例子(显然,rawQuery 不适用于 persistent-mongoDB)。我需要使用地理特殊选择器 ($near),这就是我不能只调用 selectList 的原因。

但是,有一种方法可以用 Database.MongoDB 做一些我想做的事情:

rawrecs <- runDB $ find (select 
["loc" =: [
"$near" =: [
"$geometry" =: [
"type" =: ("Point"::String),
"coordinates" =: [ (28.483334::Double),(49.233334::Double) ]
],
"$maxDistance" =: (1000::Int)
]
]] "points") { limit = 10 } >>= rest
mapM_ (liftIO . putStrLn . show) rawrecs

然后将查询结果转化为持久化实体。是的,它有效,但看起来有点棘手。

有人知道使用 persistent-mongoDB 执行此操作的更正确方法吗?

谢谢:)

最佳答案

一)

  { _id : ObjectId(...),
name : "...",
addresses : [ {
context : "home" ,
loc : [ 55.5, 42.3 ]
} ,
{
context : "home",
loc : [ -74 , 44.74 ]
}
]
}

二)

db.records.ensureIndex( { "addresses.loc": "2d" } )

c)

db.places.find( { loc :
{ $geoWithin :
{ $geometry :
{ type : "Polygon" ,
coordinates : [ [
[ 0 , 0 ] ,
[ 3 , 6 ] ,
[ 6 , 1 ] ,
[ 0 , 0 ]
] ]
} } } } )

更多信息你可以去

http://docs.mongodb.org/manual/administration/indexes-geo/

我不是很专业,但我希望我的回答能帮到你...

关于mongodb - 如何在 persistent-mongoDB 中使用 MongoDB 查询选择器? (Yesod),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19358846/

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