2

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

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

在此示例中,文档表示具有某些属性的单个论坛线程,其中包含具有不同属性的帖子数组。

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

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

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

另一个例子是计算一个作者发表的所有帖子并返回这个数字,或者一个包含每个唯一用户的帖子数量的表格。

同样,在 R 中:

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

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

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

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

4

0 回答 0