在 mongolite R 库中获取 ObjectID
Get ObjectID in mongolite R library
我可以从我的 mongoDB 实例中成功检索数据,但需要为依赖查询重新使用 objectID。
下面的代码似乎得到了我的整个对象,但没有得到 id。我错过了什么?
# Perform a query and retrieve data
mongoOBj <- m$find('{"em": "test@test.com"}')
如果您查看 the documentation,您会看到 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}')
我意识到这是一个老问题,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 不是输出的一部分。
仅供参考 因此,获取所有字段的最简单方法是使用 field="{}" 进行查询。这将覆盖 mongolite:: package find() 参数列表中的默认值。
这也让我发疯了一段时间。
我可以从我的 mongoDB 实例中成功检索数据,但需要为依赖查询重新使用 objectID。
下面的代码似乎得到了我的整个对象,但没有得到 id。我错过了什么?
# Perform a query and retrieve data
mongoOBj <- m$find('{"em": "test@test.com"}')
如果您查看 the documentation,您会看到 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}')
我意识到这是一个老问题,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 不是输出的一部分。
仅供参考 因此,获取所有字段的最简单方法是使用 field="{}" 进行查询。这将覆盖 mongolite:: package find() 参数列表中的默认值。
这也让我发疯了一段时间。