首页 > 解决方案 > 如何使“$nearSphere”也返回没有任何坐标的项目?

问题描述

我尝试进行$nearSphere如下查询:

"coordinates":{
  "$nearSphere":{
    "$geometry":{
      "type":"Point",
      "coordinates":[7.16,47.13]}}},

问题是它不会返回没有节点“ coordinates”的文档(即使在列表的末尾)。他们是一种强制$nearSphere返回没有节点“ coordinates”节点的文档(在列表末尾)的方法吗?

标签: mongodbmongodb-query

解决方案


不,不是在单个查询中。

$nearSphere 需要一个地理空间索引。没有坐标的文档被排除在索引之外,基本上对查询不可见。

您可以进行第二个查询以查找所有没有坐标的文档:

.find({"coordinates": {$exists: false}})

并在应用程序级别联合两个游标。

或者,您可以使用 $facet 在单个管道中运行这两个查询,以组合数据库端的结果。


推荐阅读