【问题标题】:Error when running query using mongolite (R and MongoDB)使用 mongolite(R 和 MongoDB)运行查询时出错
【发布时间】:2020-03-27 10:50:57
【问题描述】:

在我的本地主机中,y 在 MongoDB 中创建了一个数据库 (coches) 和一个集合 (dtc)。我的收藏包含超过 200 万份文档。

我想将文档子集连接到 R。我在 MongoDB 中运行的查询是 this question 之一,我在这里复制/粘贴:

db.getCollection("dtc")
  .find({
    "payload.fields.MDI_CC_DIAG_DTC_LIST": { $exists: true },
    "payload.asset": { $exists: true }
  })

这个子集产生了 2265 个文档。

我在 RStudio 中加载了 mongolite 包来连接 MongoDB 和 R。

library(mongolite)
c <- mongo(collection = "dtc", db = "coches")

但是,当我尝试这些查询时:

# query 1
c$find('{
    "payload.fields.MDI_CC_DIAG_DTC_LIST": { $exists: true },
    "payload.asset": { $exists: true }
  }')

# query 2
c$find(query = '{
    "payload.fields.MDI_CC_DIAG_DTC_LIST": { $exists: true },
    "payload.asset": { $exists: true }
  }')

我收到此错误:

Error: Invalid JSON object: { "payload.fields.MDI_CC_DIAG_DTC_LIST": { $exists: true }, "payload.asset": { $exists: true } }

原始文档是 JSON 嵌入文件。

编码有什么问题?我错过了什么?

【问题讨论】:

    标签: r mongodb mongolite


    【解决方案1】:

    一段时间后,检查不同的地方,我遇到了问题,因此可以解决它。问题是$exists 必须用引号引起来("$exists")。所以代码是这样的:

    dtc$find('{ 
            "payload.fields.MDI_CC_DIAG_DTC_LIST" : { 
                "$exists" : true
            }, 
            "payload.asset" : { 
                "$exists" : true
            }
        }')
    

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 2019-05-11
      • 2016-03-30
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2016-06-29
      • 2014-11-28
      • 1970-01-01
      相关资源
      最近更新 更多