标签: mongodb-scala

mongodb得到不同的记录

我正在使用mongoDB其中我收集了以下格式.

{"id" : 1 , name : x  ttm : 23 , val : 5 }
{"id" : 1 , name : x  ttm : 34 , val : 1 }
{"id" : 1 , name : x  ttm : 24 , val : 2 }
{"id" : 2 , name : x  ttm : 56 , val : 3 }
{"id" : 2 , name : x  ttm : 76 , val : 3 }
{"id" : …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-scala

24
推荐指数
4
解决办法
7万
查看次数

mongo更新查询给出错误

Coll.update(condition, new BasicDBObject("$set", data), true, true))
Run Code Online (Sandbox Code Playgroud)

这是我在mongodb中的更新查询,它提供了一些结果为的结果

{ "err" :  null  , "updatedExisting" : true , "n" : 1 , "ok" : 1.0}
Run Code Online (Sandbox Code Playgroud)

并且在那时存储的更新查询正确执行.

但对于一些记录,它给出了结果

{ "err" : "not okForStorage" , "code" : 12527 , "n" : 0 , "ok" : 1.0}
Run Code Online (Sandbox Code Playgroud)

记录既不更新也不在sto中存储

在数据中有多个BasicDBList(列表)使用.

如果有人知道plz回复

谢谢

mongodb mongodb-scala

8
推荐指数
1
解决办法
5783
查看次数

通过Casbah的正则表达式找到

如何使用正则表达式Collection#find(/* HERE */):

val coll = MongoConnection()("foo")("bar")
for(x <- coll.find("name" -> ".*son$".r)) {
   // some operations...
}
Run Code Online (Sandbox Code Playgroud)

scala mongodb casbah mongodb-scala

7
推荐指数
1
解决办法
2254
查看次数

迭代游标时修改Mongo对象的安全+有效方法?

我有一些代码检查Mongo集合中的每个对象(迭代不带参数的find()的结果),并对其中的一些进行更改.看起来这不安全:我的更改被保存,但是当我继续迭代光标时,更改对象的子集(10-15%)会再次出现.我没有更改文档ID或任何有索引的内容.

我想通过提前抓取所有文档ID(将光标转换为数组)来避免这个问题,但这些是大型集合,所以我真的想避免这种情况.

我注意到默认情况下find()的结果似乎没有任何已定义的顺序,所以我尝试对游标进行显式排序,{"_ id":1}.这似乎解决了这个问题 - 无论我修改什么,现在都没有出现过两次.但我不知道这是不是一个好的/可靠的方法.据我从文档中可以看出,添加排序并不会使其预先查询所有ID; 如果是这样,那很好,但后来我不知道为什么它会解决这个问题.

改变东西时使用游标是一个坏主意吗?

我正在使用Scala/Casbah,如果这很重要的话.

mongodb mongodb-scala

7
推荐指数
1
解决办法
3838
查看次数

Play Framework 2.1的最佳mongodb驱动程序

什么是Play Framework 2.1最好的MongoDB驱动程序?

我现在正在尝试ReactiveMongo,但我无法在任何地方找到好的文档,我怀疑它的未来发展.

哪个驱动程序最受欢迎和支持?

谢谢,

GA

scala mongodb mongodb-scala playframework-2.1

5
推荐指数
1
解决办法
3379
查看次数

使用mongo-scala-driver从Scala中的Mongodb打印查询结果

我试图在Scala中打印MongoDB查询的结果

val mongoClient: MongoClient = MongoClient()
val database: MongoDatabase = mongoClient.getDatabase("tableScala")
val collection: MongoCollection[Document] = database.getCollection("tableScala")

collection.find().printResults()
Run Code Online (Sandbox Code Playgroud)

抛出的错误是:Cannot resolve symbol printResults.建议使用mongo-scala-driver版本的一些其他问题的答案1.2,因为版本1.1及以下没有实现printResults()

SBT档案:

name := "scalaMongoDriver"

version := "1.0"

scalaVersion := "2.11.8"

libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "1.2.0-beta1"
Run Code Online (Sandbox Code Playgroud)

尝试使用以下方式手动打印:

collection.find().subscribe(
      (user: Document) => println(user.toJson()),                         // onNext
      (error: Throwable) => println(s"Query failed: ${error.getMessage}"), // onError
      () => println("Done")                                               // onComplete
    ) 
Run Code Online (Sandbox Code Playgroud)

得到以下信息:

信息:ReadPreferenceServerSelector {readPreference = primary}从集群描述ClusterDescription {type = UNKNOWN,connectionMode = SINGLE,serverDescriptions = [ServerDescription …

scala mongodb mongodb-scala mongodb.driver

5
推荐指数
1
解决办法
1540
查看次数

mongodb ORing和ANDing查询

我正在使用mongoDB数据库.我收集的格式如下.

{ name : name1 , area: a , country : c}
{ name : name2 , area: b , country : c}
{ name : name3 , area: a1 , country : c1}
{ name : name4 , area: b1 , country : c1}
Run Code Online (Sandbox Code Playgroud)

我想要查询

select * from coll where (country =c and area =a) or (country = c1 and area = b1)
Run Code Online (Sandbox Code Playgroud)

在mongodb查询中.

我已经阅读了很多文档,但没有找到合适的答案.

所以如果有人知道请回复.

谢谢

mongodb mongodb-scala

3
推荐指数
1
解决办法
456
查看次数

MongoDB - 按引用排序或"外键"(Liftweb,Scala)

我有一个用户,其中包含一个指向组织的参考字段"o":

> db.users.findOne()
{
"o" : ObjectId("4ec3548544ae1b7234548826")
}
Run Code Online (Sandbox Code Playgroud)

组织包含字段"n":

> db.organisations.findOne()
{
    "n" : "My organization" 
}
Run Code Online (Sandbox Code Playgroud)

我想要一个按用户排序的用户列表,最好是在Scala/Lift中.

scala lift mongodb mongodb-scala

1
推荐指数
1
解决办法
1701
查看次数