mongolite - 聚合方法的正确语法

tos*_*pig 2 r mongolite

数据

在这里,我使用mongolite将虚拟数据插入到测试 mongodb 数据库中:

library(mongolite)

## create dummy data
df <- data.frame(id = c(1,2,3,4),
                 region = c("r1", "r1", "r2", "r2"))

> df
  id region
1  1     r1
2  2     r1
3  3     r2
4  4     r2

## insert into database
mong <- mongo(collection = "test", db = "test", url = "mongodb://localhost")
mong$insert(df)
Run Code Online (Sandbox Code Playgroud)

如何使用该aggregate方法查找每个区域的记录数?

Mongo Shell 查询

此查询在 mongo shell 中运行时返回正确答案

db.test.aggregate({ $group : { _id : "$region", number_records : { $sum : 1}}})
Run Code Online (Sandbox Code Playgroud)

我现在如何将其翻译成正确的语法mongolite


试图

我想

mong$aggregate('{ $group : { _id : "$region", number_records : { $sum : 1}}}')
Run Code Online (Sandbox Code Playgroud)

会这样做,但我得到一个Error: invalid JSON object错误。

我觉得我忽略了一些非常简单的事情!

tos*_*pig 5

仔细查看文档(第 4 页),它表明我实际上需要每个键/值周围的引号,以及整个查询周围的方括号:

> mong$aggregate('[{ "$group" : 
                      { "_id" : "$region", 
                        "number_records" : { "$sum" : 1}
                      }
                  }]')
 Imported 2 records. Simplifying into dataframe...
  _id number_records
1  r2              2
2  r1              2
Run Code Online (Sandbox Code Playgroud)