首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GraphQL和MongoDB‘$geoNear`’聚合

GraphQL和MongoDB‘$geoNear`’聚合
EN

Stack Overflow用户
提问于 2018-03-16 10:38:59
回答 1查看 414关注 0票数 0

我正在尝试从我的MongoDB数据库中检索一些对象,这些对象的位置靠近给定的一组坐标,然后将它们排序到最近的位置,这是可行的。问题是,我还想显示每一个物体的距离,例如“130万之外”。

我以前使用的是$near,它工作得很好,但切换到使用$geoNear,因为它能够通过向为每个对象返回的json添加一个额外的字段来返回与给定坐标的距离,例如,一个新的distance字段以及现有字段。

$geoNear在文档中被描述为一个aggregation,但不确定这会产生什么不同。我让$geoNear完全按照$near的方式工作,所以按正确的顺序检索正确的对象,但不能检索新的distance字段。

如何让GraphQL返回仅通过mongoDB查询/聚合存在的字段?

下面是我对这个查询的解析器:

代码语言:javascript
复制
  findNearestShops: async ({ coordinates }) => Shop.aggregate([
    {
      $geoNear: {
        near: { type: 'Point', coordinates },
        distanceField: 'distance',
        minDistance: 0,
        maxDistance: 8046.72,
        spherical: true
      }
    }
  ]),
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-17 18:04:34

将新的distance字段添加到我正在搜索的对象类型的GraphQL模式中,并将其作为前端GraphQL查询的返回字段添加,这似乎非常有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49318706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档