在 MongoDB 中,$polygon 操作可以用来进行多边形地理位置查询。而在 Mongoose 中,$polygon 操作可以通过使用 GeoJSON 对象来实现。本文将详细介绍 Mongoose 中的 $polygon 操作,包括其语法、使用方法、示例代码以及一些注意事项。
语法
Mongoose 中的 $polygon 操作的语法如下所示:
Model.find({location: {$geoWithin: {$polygon: [[x1, y1], [x2, y2], [x3, y3], ..., [xn, yn]]}}}, callback);其中,Model 表示 Mongoose 模型,location 表示存储地理位置信息的字段名,x1, y1, x2, y2, ..., xn, yn 分别表示多边形各个顶点的经纬度坐标。
使用方法
使用 $polygon 操作进行多边形地理位置查询的步骤如下:
定义 Mongoose 模型并设置地理位置索引。
-- -------------------- ---- ------- --- -------- - -------------------- --- ------ - ---------------- --- -------------- - --- -------- ----- ------- --------- - ----- ------ -------- ------------ -- - --- ------------------------------- ------------- --- -------- - -------------------------- ----------------插入数据。
-- -------------------- ---- ------- --- --------- - --- ---------- ----- ------------ --------- - ----- -------- ------------ ------------ ---------- - --- --- --------- - --- ---------- ----- ------------ --------- - ----- -------- ------------ ------------ ---------- - --- --- --------- - --- ---------- ----- ------------ --------- - ----- -------- ------------ ------------ ---------- - --- ----------------- ----------------- -----------------进行多边形地理位置查询。
-- -------------------- ---- ------- --- ------- - ------------- ----------- ------------ ----------- ------------ ----------- ------------ ----------- ------------ ------------ ------------------------ ------------ ---------- ----------- ------------- ---------- - -- ----- - ------------------- - ---- - ----------------------- - ---
示例代码
以下是一个完整的示例代码,包括定义 Mongoose 模型、插入数据以及进行多边形地理位置查询:
-- -------------------- ---- -------
--- -------- - --------------------
--- ------ - ----------------
--- -------------- - --- --------
----- -------
--------- -
----- ------ --------
------------ --
-
---
------------------------------- -------------
--- -------- - -------------------------- ----------------
--- --------- - --- ----------
----- ------------
--------- -
----- --------
------------ ------------ ----------
-
---
--- --------- - --- ----------
----- ------------
--------- -
----- --------
------------ ------------ ----------
-
---
--- --------- - --- ----------
----- ------------
--------- -
----- --------
------------ ------------ ----------
-
---
-----------------
-----------------
-----------------
--- ------- - ------------- ----------- ------------ ----------- ------------ ----------- ------------ ----------- ------------ ------------
------------------------ ------------ ---------- ----------- ------------- ---------- -
-- ----- -
-------------------
- ---- -
-----------------------
-
---注意事项
在使用 $polygon 操作进行多边形地理位置查询时,需要注意以下几点:
多边形各个顶点的经纬度坐标必须以逆时针方向排列。
多边形各个顶点的经纬度坐标必须是一个数组,其中第一个元素表示经度,第二个元素表示纬度。
Mongoose 中的 $polygon 操作只能用于查询多边形内的地理位置,不能用于查询多边形外的地理位置。
在进行多边形地理位置查询时,需要先为存储地理位置信息的字段建立地理位置索引。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67d208e4a941bf71343fe5b8