作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
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/
我是一名优秀的程序员,十分优秀!