MongoDB GEO地理空间命令
一、MongoDB GEO地理空间命令 介绍
地理空间命令仅包含一个命令,即geoSearch。它用于执行利用MongoDB 的 haystack索引功能的地理空间查询。
Haystack 索引:它通过创建按第二个标准分组的对象桶来增加搜索。
geoSerach 命令加载了一个可供 MongoDB 的 haystack 索引功能使用的接口。它用于根据一些不同的查询(例如 haystack)收集结果后返回基于位置的结果。
语法:
db.runCommand({
geoSearch : "read",
near: [ -73.9667, 40.78 ],
maxDistance : 6,
search : { type : "tutorial" },
limit : 30
})
它接受包含以下字段的文档:
字段名 | 类型 | 描述 |
---|---|---|
geoSearch | string | 它是您要对其执行地理搜索的集合的名称。 |
search | document | 它是用于过滤文档的查询。 |
near | array | 它是我们要执行地理搜索的点的坐标。 |
maxDistance | number | 我们可以定义到我们想要执行搜索的最大距离。 |
Limit | number | 我们可以限制它将返回的最大文档数。 |
readConcern | document | 我们可以使用以下语法指定读取关注点;
readConcern: { level: <value> } 可能的阅读关注级别是:
|
二、MongoDB GEO地理空间命令 示例
我们以采集位置为例:
db.runCommand( { geoSearch : "location", near: [ -73.96466, 40.78546 ], maxDistance : 8, search : { type : "book store" }, limit : 50 })
上述命令返回所有类型为 book store 的文档,该文档与集合位置中的坐标 [ -73.96466, 40.78546 ] 的最大距离为 8 个单位,最多可返回 50 个结果。
覆盖默认读取问题
我们可以使用读取关注选项来覆盖默认的读取关注级别。例如:
db.runCommand(
{
geoSearch: "places",
near: [ -73.9667, 40.78 ],
search : { type : "book store" },
readConcern: { level: "majority" }
}
)
热门文章
优秀文章