【问题标题】:How do I perform a find using $geoIntersects / 2dsphere in an array subfield?如何在数组子字段中使用 $geoIntersects / 2dsphere 执行查找?
【发布时间】:2013-05-26 15:03:09
【问题描述】:

我有一个包含文档的集合,每个文档都有一个带有多边形的字段数组。

我想测试我的多边形是否与这些多边形中的任何一个相交。如果有帮助,它们都是盒形的。

如果您在我正在测试的数组中添加我的多边形的可能性,我将添加赏金点。我不希望它与自身相交...

城市:

{_id, buildings:[ {coo:{shape:"Polygon", coordinates:[ [0,0], [4,0], [4,5], [5,0],[0,0] ] }, {coo:{shape:"Polygon", coordinates:[ [0,0], [4,0], [4,5], [5,0],[0,0] ] } ] }}

假设我在数组中有大约 100 个左右的元素。 我想确定,对于给定的形状,它是否与任何其他多边形相交或不与其他多边形相交(同样,不包括它自己在内)。

【问题讨论】:

  • 您能提供一个示例文档吗?这将阐明您的架构。
  • 你去,编辑。

标签: node.js mongodb geospatial


【解决方案1】:

此页面将帮助您在复合空间文档上创建地理空间索引:

http://docs.mongodb.org/manual/core/geospatial-indexes/

然后你可以使用这个页面来找出你的查询

http://docs.mongodb.org/manual/reference/operator/box/#op._S_box

【讨论】:

  • 我已经阅读了这两个页面,我的问题高于那里的信息。
【解决方案2】:

试试这个:

<collection>.findOne({ 'polygons': { $geoIntersects: { $geometry: { type: "Point", coordinates: [Longitude, Latitude] } } } }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-11
    • 2020-07-25
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2021-06-02
    相关资源
    最近更新 更多