0

我正在使用官方的 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 中执行此查询,它会很好地计算这些记录。知道如何解决这个问题吗?

谢谢!

4

1 回答 1

2

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

于 2018-11-19T11:26:28.227 回答