Mongoose 中的 $polygon 操作详解

阅读时长 6 min read

在 MongoDB 中,$polygon 操作可以用来进行多边形地理位置查询。而在 Mongoose 中,$polygon 操作可以通过使用 GeoJSON 对象来实现。本文将详细介绍 Mongoose 中的 $polygon 操作,包括其语法、使用方法、示例代码以及一些注意事项。

语法

Mongoose 中的 $polygon 操作的语法如下所示:

其中,Model 表示 Mongoose 模型,location 表示存储地理位置信息的字段名,x1, y1, x2, y2, ..., xn, yn 分别表示多边形各个顶点的经纬度坐标。

使用方法

使用 $polygon 操作进行多边形地理位置查询的步骤如下:

  1. 定义 Mongoose 模型并设置地理位置索引。

    -- -------------------- ---- -------
    --- -------- - --------------------
    --- ------ - ----------------
    
    --- -------------- - --- --------
      ----- -------
      --------- -
        ----- ------ --------
        ------------ --
      -
    ---
    
    ------------------------------- -------------
    
    --- -------- - -------------------------- ----------------
  2. 插入数据。

    -- -------------------- ---- -------
    --- --------- - --- ----------
      ----- ------------
      --------- -
        ----- --------
        ------------ ------------ ----------
      -
    ---
    
    --- --------- - --- ----------
      ----- ------------
      --------- -
        ----- --------
        ------------ ------------ ----------
      -
    ---
    
    --- --------- - --- ----------
      ----- ------------
      --------- -
        ----- --------
        ------------ ------------ ----------
      -
    ---
    
    -----------------
    -----------------
    -----------------
  3. 进行多边形地理位置查询。

    -- -------------------- ---- -------
    --- ------- - ------------- ----------- ------------ ----------- ------------ ----------- ------------ ----------- ------------ ------------
    
    ------------------------ ------------ ---------- ----------- ------------- ---------- -
      -- ----- -
        -------------------
      - ---- -
        -----------------------
      -
    ---

示例代码

以下是一个完整的示例代码,包括定义 Mongoose 模型、插入数据以及进行多边形地理位置查询:

-- -------------------- ---- -------
--- -------- - --------------------
--- ------ - ----------------

--- -------------- - --- --------
  ----- -------
  --------- -
    ----- ------ --------
    ------------ --
  -
---

------------------------------- -------------

--- -------- - -------------------------- ----------------

--- --------- - --- ----------
  ----- ------------
  --------- -
    ----- --------
    ------------ ------------ ----------
  -
---

--- --------- - --- ----------
  ----- ------------
  --------- -
    ----- --------
    ------------ ------------ ----------
  -
---

--- --------- - --- ----------
  ----- ------------
  --------- -
    ----- --------
    ------------ ------------ ----------
  -
---

-----------------
-----------------
-----------------

--- ------- - ------------- ----------- ------------ ----------- ------------ ----------- ------------ ----------- ------------ ------------

------------------------ ------------ ---------- ----------- ------------- ---------- -
  -- ----- -
    -------------------
  - ---- -
    -----------------------
  -
---

注意事项

在使用 $polygon 操作进行多边形地理位置查询时,需要注意以下几点:

  1. 多边形各个顶点的经纬度坐标必须以逆时针方向排列。

  2. 多边形各个顶点的经纬度坐标必须是一个数组,其中第一个元素表示经度,第二个元素表示纬度。

  3. Mongoose 中的 $polygon 操作只能用于查询多边形内的地理位置,不能用于查询多边形外的地理位置。

  4. 在进行多边形地理位置查询时,需要先为存储地理位置信息的字段建立地理位置索引。

Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67d208e4a941bf71343fe5b8

Feed
back