我对如何在我的 Scalatra 项目中使用 Casbah 从 MongoDB 检索单个文档感到有些困惑。目前,我有一些假设如下所示的代码:
get ("/dogs") {
val collar_id = params.getOrElse("collar_id", 1)
val mongoColl = mongoDb("pets")("dogs")
val o: DBObject = MongoDBObject("collar_id" -> collar_id)
val b = mongoColl.findOne(o)
b.json_document
}
在这种情况下,文档b
有一个json_document
字段,其中包含我需要在响应中呈现为 JSON 的所有数据。问题是,我似乎没有在这里使用 Casbah 正确查询 MongoDB。相当于我如何使用 mongodb 的客户端查询它是:
db.dogs.findOne({collar_id: 5})
编写上面的查询代码以获得类似结果的正确方法是什么?将collar_id 作为字符串或 Int 传递似乎不起作用。返回时也会出错b.json_document
:
value json_document is not a member of Option[mongoColl.T]