【问题标题】:Get ObjectID in mongolite R library在mongolite R库中获取ObjectID
【发布时间】:2016-03-25 10:44:07
【问题描述】:

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

以下代码似乎获取了我的整个对象,但没有获取 id。我错过了什么?

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

【问题讨论】:

    标签: r mongodb mongolite


    【解决方案1】:

    如果您查看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}')
    

    【讨论】:

      【解决方案2】:

      我意识到这是一个老问题,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 不是输出的一部分。

      【讨论】:

        【解决方案3】:

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

        这也让我发疯了一会儿。

        【讨论】:

          猜你喜欢
          • 2019-07-23
          • 2022-12-12
          • 2017-05-21
          • 2018-04-14
          • 2016-03-30
          • 1970-01-01
          • 2021-11-27
          • 2017-01-24
          相关资源
          最近更新 更多