我在bikes.loc字段上有2 2dSphere索引
下面的查询在mongo中运行良好
db.bikes.find({
fromDate: {
$lte: ISODate("2014-10-11T00:01:00Z")
},
toDate: {
$gte: ISODate("2014-10-12T05:05:00Z")
},
bikeType: "Road",
loc: {
$near: {
$geometry: {
type: "Point",
coordinates: [
-121.8867076,
37.3357192
]
},
$maxDistance: 10
}
}
});然而,在卡西巴对于斯卡拉来说,$maxDistance是不被认可的。
("loc" $nearSphere(long, lat) $maxDistance 10)Scala版本2.11.2
gradle org.mongodb:casbah_2.11:2.7.3中的Casbah依赖关系
窃听器还开着吗?
发布于 2014-11-12 04:47:15
看上去不像。但是您应该在这里使用$near操作符。这是一个示例源分布中的测试
"With a $maxDistance specification" in {
val near = "foo" $near(74.2332, -75.23452) $maxDistance 5
near must beEqualTo(
MongoDBObject(
"foo" -> MongoDBObject(
"$near" -> MongoDBList(74.2332, -75.23452),
"$maxDistance" -> 5)))
}
}这个清单是在2.7.3版的时候开始的。
因此,这在查询DSL中是支持的,但是正如测试条件中所指出的,即使
MongoDBObject(
"loc" -> MongoDBObject(
"$nearSphere" -> MongoDBObject(
"type" -> "Point",
"coordinates" -> MongoDBList(-121.8867076,37.3357192)
),
"$maxDistance" -> 10 ))https://stackoverflow.com/questions/26879303
复制相似问题