问题标签 [rmongodb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7965 浏览

r - 如何从 R 查询 MongoDB?

我想从 R 获取 MongoDB 查询。

使用mongo外壳,我会查询:

但是,在 R-Mongo 中,我还没有找到如何描述这个查询。

谢谢

0 投票
1 回答
1246 浏览

r - 使用包 'rmongodb' 处理查询结果集

当使用rmongodb包并且最终对象应该是 a 时,您将如何处理MongoDB 查询的结果集(长度 > 1 ) ?list

我尝试避免在单list步执行结果集时简单地附加对象时发生的 R 典型的“按值传递”复制效率低下。但为了做到这一点,我想我需要知道查询总共返回了多少“记录”,不是吗?这样,我可以跨越一个空列表,并在单步执行结果集时将其填满——甚至更好,我可以使用lapply()等等。

这是一个小例子

示例内容

该示例取自MongoDB 网站并通过rmongodb实现

询问

处理查询结果

这是我能想到的最好的:

然而,我正在寻找的是类似as.list(cursor)或类似的东西:

这可能吗?不幸的是,我对我认为包使用的 C/C++ 指针并不十分熟悉。

0 投票
3 回答
7090 浏览

r - 使用 rmongodb 在 R 中运行高级 MongoDB 查询

由于 MySQL 让我发疯,我试图让自己熟悉我的第一个“NoSQL”DBMS,它恰好是MongoDB。我通过rmongodb连接到它。

我玩的越多rmongodb,关于运行高级查询的问题/问题就越多。

首先,在详细介绍我似乎无法正确指定的不同类型的查询之前,我先介绍一些示例数据。

示例数据

该示例取自MongoDB 网站,并进行了一些简化。

与插入 JSON/BSON 对象相关的两个问题:

  1. 文档'test.posts',字段voters:在这种情况下使用是否正确c()
  2. 文档'test.posts',字段comments:指定这个的正确方法是什么,c()或者list()

顶级查询:他们很享受

顶级查询工作得很好:

问题一:基本子级查询

如何运行需要进入JSON/BSON样式 MongoDB 对象的任意深度子级别的简单“子级别查询”(与顶级查询相反)?这些子级查询使用 MongoDB 的点表示法,我似乎无法弄清楚如何将其映射到有效的rmongodb查询

在简单的 MongoDB 语法中,类似于

会工作。但我不知道如何用rmongodb函数做到这一点

这是我到目前为止尝试过的

问题 2:使用$运算符的查询

这些工作

查询 1

查询 2

但是,请注意,原子集将导致返回值NULL

尝试与子级别查询相同,我又迷路了

0 投票
2 回答
1974 浏览

r - MongoDB 中的查询

我正在尝试使用rmongodb从 MongoDB 数据库中获取信息以在 R 中进行进一步处理。但是,我很难真正开始。这个有效:

现在,如果我想找到名字是“John”、“Bob”或“Catherine”的人怎么办?我试过query=list(last.name="Smith", first.name=c(John, Bob, Catherine))了,但这没有成功。替换也不起作用=%

另一个问题是数据库内容是嵌套的,这意味着我有子树、子子树等。例如,对于条目,first.name="John", last.name="Smith"我可能有子条目address, age, occupation,如每年我都会有一个条目,如“失业”、“文员”、“企业家”)。那么,如果我想找到所有 40 岁且在 2010 年失业的名字为“John”的人怎么办?查询会是什么样子?

编辑作为对 Stennie 的回复:这是我的数据库结构和我正在尝试执行的查询的示例。想象一所大学的校友被细分为小组(例如“非常优秀的学生”、“优秀的学生”等)。然后,每个组都包含已分配到该组的人员列表及其详细信息。

现在让我们假设我对名为“最好的学生”和“好学生”的组感兴趣,并希望将每个组的每个成员的“姓氏”和“职业”作为 R 对象,以便做一些情节,统计数据或其他什么。也许我还想改进这个请求,只接收那些年龄小于 40 岁的成员。现在在阅读了 Stennie 的回复后,我这样尝试:

运行后没有错误消息,但我得到一个空数据框。这段代码有什么问题?

0 投票
4 回答
1429 浏览

r - rmongodb:在查询中使用 $or

我正在努力在 R 和 rmongodb 中使用 $or 创建查询。我想效仿的是来自 cmdline mongo 的:

我想提取 person.cell 不为 null 或 person.home 不为 null 的记录。我可以单独查询每个,但是当我使用 $or 在 rmongodb 中创建缓冲区时无法取回数据,使用 rmongodb 的 R 代码如下所示:

这不会返回任何记录,没有错误,只是一个空集。正如我所提到的,我可以在 person.cell 或 person.home 上进行查找并获得结果,但当我尝试执行 $or(在 rmongodb 中)以便我使用 person.cell 或 person.home 提取记录时却不行.

我也试过这个:

但是我得到了相同的空集结果(当我查看它时,“b”看起来是一样的)。我坚持这个。

0 投票
2 回答
1670 浏览

r - 使用 rmongodb 连接到 MongoDB 副本集

有没有人能够使用连接到 MongoDB 副本集rmongodb?无论我如何配置mongo.create,我都会收到身份验证错误,即使相同的主机/用户名/密码在通过mongoshell 连接时工作正常。

我的代码相当于:

更新:

查看副本集中所有节点的日志,当我运行上面的代码时,我没有看到任何身份验证尝试。因此,这可能是一个rmongodb错误。

0 投票
0 回答
905 浏览

arrays - 使用 rmongodb 从 mongoDB 中的数组中提取值到数据帧

我正在查询包含示例中显示的条目的数据库。所有条目都包含以下值:

  • _idoverallitem:和的唯一标识placed_items
  • name: 你的名字overallitem
  • loc:overallitem和的位置placed_items
  • time_id:overallitem存储时间
  • placed_items:包含数组placed_items(范围可以从零:placed_items : [],到无限量。
  • category_id: 的类别placed_items
  • full_id: 的完整 idplaced_items

我想在给定和约束的每个级别上提取name,full_idcategory_idplaced_itemstime_idloc

示例数据:

此示例的预期结果是:

因此,如果placed_items为空,请将条目放入数据框中,如果placed_items包含n条目,则将n条目放入数据框中

我试图制定一个 RBlogger 示例来创建所需的数据框。

如果我想在某个overallitem级别(即_idor name)提取值但无法收集placed_items级别上的信息,则条件有效并且代码有效。此外,提取的虚线调用full_id似乎category_id不起作用。任何人都可以帮忙吗?

0 投票
1 回答
711 浏览

r - 在 rmongodb 中分组

我正在尝试在 MongoDB 集合上创建一个组查询,类似于:

我正在使用 rmongodb。通过查看 rmongodb 包文档,他们使用mongo.command来运行计数命令:

也不同:

有没有人成功使用mongo.command过进行组查询?

0 投票
1 回答
372 浏览

r - 在 R 中使用 mapreduce

我正在尝试使用 R 进行 mapreduce。有一个名为 mapReduce 的 R 包,但它的功能不适用于复杂的 mapreduce 应用程序。我正在为我的数据库使用 mongodb 并使用 R 的 rmongodb 包来访问它。现在如果你需要做一些 mapredece,有人知道一个好的 R 包吗?

0 投票
2 回答
1588 浏览

r - 使用 rmongodb 加速大型结果集处理

我正在使用 rmongodb 来获取特定集合中的每个文档。它可以工作,但我正在处理数百万个小文档,可能是 100M 或更多。我正在使用作者在网站上建议的方法:cnub.org/rmongodb.ashx

这适用于数百或数千个结果,但 while 循环非常非常慢。有什么方法可以加快速度吗?也许是多处理的机会?任何建议,将不胜感激。我平均每小时 100 万,按照这个速度,我需要一周的时间来构建数据框。

编辑:我注意到while循环中的向量越多,它变得越慢。我现在尝试为每个向量分别循环。虽然仍然看起来像一个黑客,但必须有更好的方法。

编辑 2:我对 data.table 很幸运。它仍在运行,但看起来它将在 4 小时内完成 12M(这是我当前的测试集),这是一个进步,但远非理想

}