使用Rails / Mongoid进行地理空间查询的最佳教程是什么?

时间:2011-05-01 00:57:08

标签: ruby-on-rails-3 mongodb mongoid geospatial

我在我的Rails应用程序中使用Mongoid。是否有任何关于如何存储和查询位置数据以及获取位于特定半径范围内的对象的教程?我一直在寻找,却一无所获。

3 个答案:

答案 0 :(得分:5)

http://mongly.openmymind.net/geo/index

这是mongo地理空间内容的互动(和有趣)演练。 http://mongly.openmymind.net/tutorial也是mongo的一个很好的介绍。

答案 1 :(得分:3)

因为和我一样,我怀疑很多人从例子中学得更好,这里有一个:

假设您已在地理空间数组字段上创建了2d索引(请参阅下面的详细信息),并假设您的模型对象是Place,并且位置字段为:loc,则边界框查询可能如下所示:

# Bounding Box query
Place.where(:loc.within => { "$box" => [ [ 20.73083, 30.99756 ], [ 45.741404, 51.988135 ] ] }).count

除了上面盖茨VP发布的链接外,请务必阅读Moingoid上的这个文档:http://mongoid.org/docs/querying/criteria.html。你会在那里找到更多的例子。

此外,您需要确保已创建索引。阅读以下来自Mongoid的文档,以及相应的MongoDB Doc:

http://mongoid.org/docs/indexing.html

http://www.mongodb.org/display/DOCS/Geospatial+Indexing

答案 2 :(得分:0)

地理空间索引的MongoDB文档可用here。这应该为您提供“如何存储和查询位置数据”的详细信息。

mongoid只是现有Ruby驱动程序的对象包装器。了解如何发布地理位置查询后,只需通过mongoid发出这些查询即可。