Официальный MongoDB Scala Driver, общая сумма 1 - PullRequest
0 голосов
/ 19 ноября 2018

Я использую официальный драйвер 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}))

Из журналов драйверов Монго я вижу, что его отправка:

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

Если я выполняю этот запрос в Монго, он считает эти записи в порядке.. Любая идея, как решить эту проблему?

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2018

Ах глупая ошибка. Я ввел код scala "1" вместо 1. Я обнаружил проблему после установки уровня профиля 2 и сравнил оба запроса.

...