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 - 动态集合名称