0
case class Venue(@Key("_id") id: Int, 
                 location: Tuple2[Double, Double],
                 name: String)

object VenueDAO extends SalatDAO[Venue, Int](collection = MongoConnection()("ec")("venue"))

VenueDAO.find(?) //return Option[Venue]

如何使用 Salat 按位置搜索数据?

4

1 回答 1

1

开始做两件事:

  1. 根据README.txt,Salat 不支持元组。
  2. 也许您正在考虑 Mongo 的地理空间坐标支持

无论如何,由于 Salat 不支持元组,您可以执行以下操作:

case class Location(x: Double, y: Double)

case class Venue(@Key("_id") id: Int, location: Location, name, String)

val venue = Venue(1, Location(1.0, 1.0), "NYC")
VenueDAO.save(venue)   
println(s"Saved: $venue")
val found = VenueDAO.findOne(MongoDBObject("location.x" -> 1.0, "location.y" -> 1.0))
println(s"Found: $found")

印刷:

Saved: Venue(1,Location(1.0,1.0),NYC)
Found: Some(Venue(1,Location(1.0,1.0),NYC))
于 2015-05-27T20:33:01.593 回答