mongo 将 maxDistance 设置为集合中的值

Posted

技术标签:

【中文标题】mongo 将 maxDistance 设置为集合中的值【英文标题】:mongo near set maxDistance as value in collection 【发布时间】:2018-11-10 10:21:50 【问题描述】:

标题很抱歉。我很难形容。我有这个收藏

  
      "_id" : ObjectId("55cb9c666c522cafdb053a68"),
      location: 
     type: "Point",
     coordinates: [-73.856077, 40.848447]
  ,
      "maxDistancevalue" : 100000
  

现在我要查找的当前位置在:100000 定义为“maxDistancevalue”的集合

代码将是这样的。但是如何设置maxDistancevalue呢?

  db.places.find(
     
       location:
          $near :
            
              $geometry:  type: "Point",  coordinates: [ -73.9667, 40.78 ] ,
              $minDistance: **??????, -->maxDistancevalue** 
              $maxDistance: 0
            
         
     
  ) 

【问题讨论】:

【参考方案1】:

您可以使用聚合框架的$geoNear 管道阶段来引用其他现有字段。它需要在您的集合上创建 2dsphere 索引,所以从以下开始:

db.places.createIndex(location:"2dsphere");

然后你可以运行你的aggregate()查询:

db.places.aggregate([
    
        $geoNear: 
            near:  type: "Point", coordinates: [ -73.9667, 40.78 ] ,
            distanceField: "dist.calculated",
            maxDistance: "$maxDistancevalue"
        
    
])

【讨论】:

以上是关于mongo 将 maxDistance 设置为集合中的值的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB $maxDistance 正在工作,但 $minDistance 不会

NodeJS Mongo - Mongoose - 动态集合名称

如何查询将日期存储为某种格式的字符串的 mongo 集合?

如何将所有 Meteor Mongo 集合名称检索为 Javascript 数组?

使用mongo命令工具操作集合数据

使用mongo命令工具操作集合数据