嗨.. 我正在使用scala n mongodb。 現在我想在scala swing應用程序中訪問mongodb數據庫。 這樣我可以使用哪些驅動程序? 和哪些可以輕鬆工作? 請回復我可以使用哪個驅動程序訪問scala swing應用程序中的mongodb?
1
A
回答
1
我一直在使用casbah http://api.mongodb.org/scala/casbah/2.0.2/index.html與我的scala swing應用程序中的mongodb對話。
它的安裝和設置非常簡單,而且API非常具有可擴展性。
最難的是理解的MongoDB本身,(從SQL背景的)
0
我們與卡斯巴適用於深物體或簡單的地圖,並沒有真正的案例類映射支持,所以我們推出的方式有點不滿意我們自己MongoDB Synchronous Scala driver在傳統的java驅動程序的頂部,我想在這裏無恥地插入一個關於如何存儲和檢索一個地圖和一個簡單的案例類的例子。該驅動程序沒有太多的魔力,並且易於安裝,並且具有受Play2 JSON impl啓發的簡單BSON實現。
下面是如何用一些簡單的數值使用它:
val client = MongoClient("hostname", 27017)
val db = client("dbname")
val coll = db("collectionname")
coll.save(Bson.doc("_id" -> 1, "vals" -> Map("key1" -> "val1")))
val docOpt = coll.findOneById(1) // => Option[BsonDoc]
for(doc <- docOpt)
println(doc.as[Map[String, String]]("vals")("key1")) // => prints "val1"
對於一個案例類是一點點複雜,但它是所有手卷並沒有參與,所以你可以做任何你的魔法喜歡你怎麼需要它,即供應商在doc一些較短的鍵名:
case class DnsRecord(host: String = "", ttl: Long = 0, otherProps: Map[String, String] = Map())
case object DnsRecord {
implicit object DnsRecordToBsonElement extends ToBsonElement[DnsRecord] {
def toBson(v: DnsRecord): BsonElement = DnsRecordToBsonDoc.toBson(v)
}
implicit object DnsRecordFromBsonElement extends FromBsonElement[DnsRecord] {
def fromBson(v: BsonElement): DnsRecord = DnsRecordFromBsonDoc.fromBson(v.asInstanceOf[BsonDoc])
}
implicit object DnsRecordFromBsonDoc extends FromBsonDoc[DnsRecord] {
def fromBson(d: BsonDoc): DnsRecord = DnsRecord(
d[String]("host"),
d[Long]("ttl"),
d[Map[String, String]]("op")
)
}
implicit object DnsRecordToBsonDoc extends ToBsonDoc[DnsRecord] {
def toBson(m: DnsRecord): BsonDoc = Bson.doc(
"host" -> m.host,
"ttl" -> m.ttl,
"op" -> m.otherProps
)
}
}
coll.save(DnsRecord("test.de", 4456, Map("p2" -> "val1")))
for (r <- coll.findAs[DnsRecord](Bson.doc("host" -> "test.de")))
println(r.host)
0
至於人們發現這個線程,並有興趣在MongoDB中3.x的更新我們使用的Async驅動程序可以在這裏找到https://github.com/evojam/mongodb-driver-scala。如果您使用的是API,則可以使用新的Play 2.4模塊以Scala方式構建API,但您始終可以只使用驅動程序。
相關問題
- 1. 我應該使用哪個PHP mongodb驅動程序?
- 2. 哪個是mongodb訪問最好的java驅動程序?
- 3. Node.js的哪個MongoDB驅動程序?
- 4. 我可以從我的應用程序訪問另一個應用程序嗎?
- 5. MongoDB:哪個C驅動程序?
- 6. 我可以自動填充MongoDB中的LastUpdated字段(使用C#驅動程序)
- 7. 春季mongodb可以使用最新的mongo驅動程序
- 8. 我應該使用哪個mongo驅動程序節點?
- 9. 我應該使用哪個MS SQL-Server JDBC驅動程序?
- 10. MongoDB C#使用新的驅動程序
- 11. Heroku中的Rails應用程序在使用MongoDB驅動程序3.0時失敗
- 12. 如何使用MongoDb Scala驅動程序進行同步查詢
- 13. 我可以繼續使用1.6.4 Ruby驅動程序來使用MongoDB v2.2.0rc嗎?
- 14. Windows驅動程序可以訪問進程的頁表嗎?
- 15. MongoDB Group使用Ruby驅動程序
- 16. 訪問Linux驅動程序
- 17. Swing應用程序問題
- 18. 可以拒絕移動應用程序使用訪問來源= *
- 19. 如何編譯scala swing應用程序?
- 20. 如何在UWP應用程序中使用MongoDB C#驅動程序?
- 21. 一個應用程序可以訪問其他應用程序的事件嗎?
- 22. 我在哪裏可以獲得訪問驅動程序連接到Java?
- 23. 哪個混合移動應用程序框架可以使用
- 24. 在哪裏把驅動程序的Java Web應用程序
- 25. 如何使用mongodb的C++驅動程序構建程序?
- 26. 問題的MongoDB的Ruby驅動程序
- 27. 我可以使用另一個應用程序B訪問A的應用程序的內部存儲器嗎?
- 28. 哪裏是用於訪問MS SQL的PHP驅動程序?
- 29. 哪個C#驅動程序用於Mongo?
- 30. opos應用程序是否可以使用pos for .NET驅動程序
是的,卡斯巴工作得很好。最重要的是,你可以使用Salat,使讀/寫嵌套對象到數據庫非常輕鬆見https://github.com/novus/salat和http://repo.novus.com/salat-presentation/#0 Casbah和salat有谷歌組http://groups.google.com/group/mongodb-casbah-users/topics和http://groups.google.com/group/scala-salat。這裏也是一個很好的談話http://skillsmatter.com/podcast/scala/mongodb-jvm – foolshat 2012-01-06 19:58:42