使用scala从mongo DB读取数据以获取案例类列表

时间:2016-02-16 18:11:33

标签: mongodb scala salat

我是mongoDB和scala的新手,

我创建了像

这样的案例分类
case class ABC(value1:String, Value2:String, Value3:Int)

case class ListOfABC(listofABC: List[ABC])

我已经为json创建了隐式格式化程序,而对于这两个类

则反之亦然
implicit formater..

我在DAO对象的ListOFABC上进行调用...但是我没有得到结果我得到“List()”作为输出

任何人都可以建议这种情况的任何工作示例..或者我的设计是对的?我的意思是创建基类并制作该类的List?

1 个答案:

答案 0 :(得分:0)

我建议您使用casbah ans Salat

  

SalatDAO是一个简单的可扩展DAO模式,您可以使用它   框或作为您自己的DAO实现的基础。

     

casbah是MongoDB的Scala工具包

here

中有很多例子
import com.novus.salat._
import com.novus.salat.dao._
import com.novus.salat.global._

import com.mongodb.casbah.Imports._

case class Employee(_id:ObjectId = new ObjectId, name: String, age: Option[Int]=None, annual_salary: Option[BigDecimal]=None)

object EmployeeDAO
  extends SalatDAO[Employee, ObjectId](collection = MongoConnection()("salat_test")("employees"))

object App{
  def main(args:Array[String]){
    val employee = Employee(name="Foo")

    val id = EmployeeDAO.insert(employee)
    println("Inserted id:" + id)

    val found = EmployeeDAO.findOne(MongoDBObject("name" -> "Foo"))
    println("Found record for name ->Foo:" + found)

    val dbo = grater[Employee].asDBObject(employee)
    println("Converted DBObject:" + dbo)
  }
}