6

我可以成功地从我的 mongoDB 实例中检索数据,但需要将 objectID 重新用于依赖查询。

下面的代码似乎得到了我的整个对象,但不是 id。我错过了什么?

# Perform a query and retrieve data
mongoOBj <- m$find('{"em": "test@test.com"}')
4

3 回答 3

9

我意识到这是一个老问题,OP现在可能已经弄清楚了,但我认为答案应该是

mongoOBj <- m$find(query = '{"em": "test@test.com"}', field = '{}') 

代替

mongoOBj <- m$find(query = '{"em": "test@test.com"}', field = '{"_id": 1}')

在第二种情况下,结果将是一个仅包含 ID 的数据框。第一行将生成一个包含查询数据的数据框,包括 ID。

默认情况下,field = '{"_id": 0}',意味着 _id 不是输出的一部分。

于 2018-01-09T14:19:15.410 回答
6

如果您查看文档,您会看到该find方法带有一个field参数,您可以在其中指定所需的字段:

find(query = ’{}’, fields = ’{"_id" : 0}’, sort = ’{}’, skip = 0, limit = 0, handler = NULL, pagesize = NULL)

因此,在您的情况下,它将类似于

mongoOBj <- m$find(query = '{"em": "test@test.com"}', field = '{"_id": 1}')
于 2015-12-20T17:18:45.487 回答
1

仅供参考,因此获取所有字段的最简单方法是使用 field="{}" 进行查询。这将覆盖 mongolite:: 包 find() 参数列表中的默认值。

这也让我发疯了一段时间。

于 2019-03-04T22:38:07.827 回答