官方的MongoDB Scala驱动程序,总数总计1

时间:2018-11-19 10:57:39

标签: mongodb scala mongodb-scala

我正在使用mongo scala官方驱动程序:http://mongodb.github.io/mongo-scala-driver/

我想执行以下查询:

db.test.aggregate([{"$group" : {_id:{name:"$name",details:"$details.id"}, count:{$sum:1}}}, {$sort:{"count":-1}} ])

所以我正在使用Scala代码:

collectionDoc.aggregate(List(
      group(Document("name" -> "$name", "details" -> "$details.id"), Accumulators.sum("count", "1")),
      )).toFuture()

但在所有结果中,我看到:

(count,BsonInt32{value=0}))

从mongo驱动程序日志中,我看到它的发送:

{
  "aggregate": "test",
  "pipeline": [
    {
      "$group": {
        "_id": {
          "name": "$name",
          "details": "$details.id"
        },
        "count": {
          "$sum": "1"
        }
      }
    }
  ],
  "cursor": {
    "batchSize": 2147483647
  },
  "$db": "my-db",
  "$readPreference": {
    "mode": "primaryPreferred"
  }
}

如果我在mongo中执行此查询,它将对那些记录进行计数。 知道如何解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

一个愚蠢的错误。 我已经输入了标量代码"1"而不是1。 将配置文件级别设置为2后,我发现了问题,并比较了两个查询。