使用 mongolite(R 和 MongoDB)运行查询时出错
Posted
技术标签:
【中文标题】使用 mongolite(R 和 MongoDB)运行查询时出错【英文标题】:Error when running query using mongolite (R and 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 嵌入文件。
编码有什么问题?我错过了什么?
【问题讨论】:
【参考方案1】:一段时间后,检查不同的地方,我遇到了问题,因此可以解决它。问题是$exists
必须用引号引起来("$exists"
)。所以代码是这样的:
dtc$find('
"payload.fields.MDI_CC_DIAG_DTC_LIST" :
"$exists" : true
,
"payload.asset" :
"$exists" : true
')
【讨论】:
以上是关于使用 mongolite(R 和 MongoDB)运行查询时出错的主要内容,如果未能解决你的问题,请参考以下文章