2014-11-12 5 views
1

У меня есть индекс 2dSphere на поле bikes.loc

Мой следующий запрос отлично работает в Монго оболочки

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 
    } 
} 
}); 

Однако в cashbah для $ maxDistance Scala не признается

("loc" $nearSphere(long, lat) $maxDistance 10) 

Scala Версия 2.11.2

Касба зависимость в Gradle O rg.mongodb: casbah_2.11: 2.7.3

Неужели ошибка все еще открыта?

ответ

0

Казалось бы, нет. Но вместо этого вы должны использовать оператор $near. Это пример test in the source distribution:

"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)) 

 Смежные вопросы

  • Нет связанных вопросов^_^