0

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

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

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 嵌入文件。

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

4

1 回答 1

0

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

dtc$find('{ 
        "payload.fields.MDI_CC_DIAG_DTC_LIST" : { 
            "$exists" : true
        }, 
        "payload.asset" : { 
            "$exists" : true
        }
    }')
于 2020-03-27T12:02:53.413 回答