将MongoDB与R一起使用 - 如何查询并仅将嵌套对象作为数据框返回?

时间:2018-06-14 16:04:36

标签: r mongodb mongodb-query mongolite

我正在使用mongolite MongoDB客户端来维护一个庞大的集合,其中典型的文档如下所示:

{
    "_id": "5b2171ebf128c8989d0d047f",
    "thread": "hellothread",
    "posts": [
        {
            "author": "John",
            "post": "Hello world!"
        },
        {
            "author": "Nigel",
            "post": "Hello!"
        },
        ...
    ]
}

在此示例中,文档代表一个论坛帖子,其中包含一些属性,其中包含一系列具有不同属性的帖子。

我正在寻找一种方法来获取来自给定线程的所有帖子或符合某些条件的所有可用线程(文档),例如作者是John,并将其作为表示单个帖子的对象数组或仅仅是一个字符串数组(“Hello world!”)返回。

因此,在R中使用mongolite的输出将是一个数据框,例如:

author    post             thread
"John"    "Hello world!"   "hellothread"
"Nigel"   "Hello!"         "hellothread"

另一个例子是统计单个作者发布的所有帖子并返回此号码,或者包含每个唯一用户的帖子数量的表格。

再次,在R:

author     number.of.posts
"John"                   1
"Nigel"                  1

我找到了几种方法,但它们都返回整个文档而不是嵌套的子文档或特定值。

请你至少指出我正确的方向?这种方法是否合情合理?有更好的方法吗?我需要使用这样的数据库,因为数据需要多个客户端访问。

到目前为止,我选择了一个非常低效的选项,即在帖子对象中存储线程级属性。

0 个答案:

没有答案