草庐IT

java - 如何在 MongoDB Java 驱动程序 3 中插入​​文档

使用mongodbjava驱动程序版本3(特别是v3.0.1)更新插入文档的惯用方法是什么?我们有一个session集合,当一个新session被创建或修改时,我们希望在一个操作中更新它——而不是必须查询文档是否存在然后插入或替换。我们旧的更新代码使用了scala驱动程序casbah2.7.3。它看起来像:importcom.mongodb.casbah.MongoCollectionimportcom.mongdb.DBObjectvalsessionCollection:MongoCollection=...valsessionKey:String=...valsessionDoc

scala - 使用 Casbah/Scala 在 MongoDB 上执行自定义函数

我已经使用其命令行客户端在MongoDB中定义了一个函数。functionsomething(){...}我想知道如何使用Scala中的casbah执行自定义MongoDB函数。有什么建议吗?谢谢, 最佳答案 有几种方法可以在服务器上运行任意javascript代码。您可以将其作为字符串提供客户端并将其发送到服务器进行评估,或者在服务器上安装该功能首先,如此处记录:http://docs.mongodb.org/manual/core/server-side-javascript/服务器端函数是按数据库注册的,在一个名为system

scala - 有没有更惯用的方法来使用 Casbah 检查密码?

我有以下代码:defauthenticateByUsername(username:String,password:String):Boolean={valuser=users.findOne(MongoDBObject(USERNAME->username))if(user.isDefined){valpw=user.get.getAs(PASSWORD)if(pw.isDefined)BCrypt.checkpw(pw.get,password)elsefalse}elsefalse}有没有更惯用的方法来做到这一点?这是一个if-else噩梦,在Scala中似乎不正确。

mongodb - Mongo Shell 显示已添加文档,但在 Scalatest 中断言失败

使用scalatest和Casbah,我创建了一个测试,将一堆文档加载到Mongo中,然后断言collection.count()>0。valcollection=MongoConnection()(MY_DB)(MY_COLLECTION)collection.dropCollection//clearoutanydocsfromprevioustestruninsert200DocumentsIntoMongo()//inserts200docsintothesameDBandcollectionassert(collection.size>0)对于多个测试,scalatest抛出

mongodb - Casbah MongoDB 只更新某些字段

我正在使用CasbahScala驱动程序对MongoDB数据库执行CRUD操作。我想更新特定文档中的某些字段。我正在使用findAndModify方法,但令我惊讶的是,整个文档都被重写了。我的原始文档在findAndModify调用之前有5个字段,我想在其中更新其中的1个字段。在findAndModify调用之后,我只剩下2个字段。这就是我正在尝试的!valmongoClient=MongoClient()valdb=mongoClient(MongoDBSetup.TEMP_DATABASE)valquery=MongoDBObject("uid"->userExam.uid)val

mongodb - 如何从 Mongodb,casbah 获取数字值

我有一个从MongoDB获取端口号的简单代码。我用的是scala,驱动当然是casbah。defgetPortNo:Int{valquery=MongoDBObject("_id"->"Store")valdata=coll.findOne(query)returndata.get("port")}这里我的应用只有一个id等于“store”的文档。但这在IDE中没有解决。我有相同的代码来获取版本。defgetVersion:String={valquery=MongoDBObject("_id"->"Store")valdata=coll.findOne(query)returndat

mongodb - Casbah Mongo 作为 scala 数组 : is this the most elegant way?

各位,这是从casbah获取scalaList的最优雅的方式吗?trains是文档中的子键,其值为数组我有点惊讶我必须执行instanceOf然后执行asScala才能获得一流的Scala列表我还能做更好或更符合scala的事情吗?valmongoconn=MongoConnection("titan"){"traininfo"}{"trains"}valresult=mongoconn.find()println()for{x 最佳答案 为什么不简单valcollection=MongoConnection("titan")("t

mongodb - ReactiveMongo 和 JSON4S

我正在使用JSON4S来解析我从外部API获取的一些JSON字符串。有没有像playreactivemongoJSONCollection或spray-json到sprest中的响应式(Reactive)mongo转换器那样获取JSON实体?将JSON4S与标准MongoCasbah库一起使用很容易,例如builder.insert(JObjectParser.parse(obj))但我真的希望能够用reactivemongo做到这一点。 最佳答案 可以先看看play-reactivemongo插件是如何实现的(play的js读写和

mongodb - 在 Worker 的帮助下从 Spark 读取巨大的 MongoDB 集合

我想从Spark中读取一个巨大的MongoDB集合,创建一个持久的RDD,并对其进行进一步的数据分析。有什么方法可以更快地从MongoDB读取数据。尝试过MongoDBJava+Casbah的方法我可以使用worker/slave从MongoDB中并行读取数据,然后将其保存为持久数据并使用吗? 最佳答案 有两种方法可以将数据从MongoDB获取到ApacheSpark。方法一:使用Casbah(MongDBJava驱动程序上的层)valuriRemote=MongoClientURI("mongodb://RemoteURL:270

mongodb - 查找查询结果到List

我有一个数据库,其中包含如下文档:{"_id":ObjectId("56zeffb2abcf7ff24b46"),"id_thing":-1,"data":{"info1":36.0709427,"date":ISODate('2005-11-01T00:33:21.987+07:00'),"info2":24563.87148077}}我的find方法返回一个List我对其进行了一些操作:for(d但是我想l_d一个目前没有的List,而且toList方法不起作用。如何以列表的形式检索data容器的所有字段及其值?编辑:我尝试了多种方法,但都没有用,因为它们都不适用于AnyRef,这