首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mongolite (R和MongoDB)运行查询时出错

使用mongolite (R和MongoDB)运行查询时出错
EN

Stack Overflow用户
提问于 2020-03-27 18:50:57
回答 1查看 163关注 0票数 0

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

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

代码语言:javascript
复制
db.getCollection("dtc")
  .find({
    "payload.fields.MDI_CC_DIAG_DTC_LIST": { $exists: true },
    "payload.asset": { $exists: true }
  })

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

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

代码语言:javascript
复制
library(mongolite)
c <- mongo(collection = "dtc", db = "coches")

然而,当我尝试这些查询时:

代码语言:javascript
复制
# 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 }
  }')

我得到了这个错误:

代码语言:javascript
复制
Error: Invalid JSON object: { "payload.fields.MDI_CC_DIAG_DTC_LIST": { $exists: true }, "payload.asset": { $exists: true } }

原始文档是JSON嵌入文件。

编码中出了什么问题?我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-03-27 20:02:53

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

代码语言:javascript
复制
dtc$find('{ 
        "payload.fields.MDI_CC_DIAG_DTC_LIST" : { 
            "$exists" : true
        }, 
        "payload.asset" : { 
            "$exists" : true
        }
    }')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60884511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档