Ошибка при выполнении запроса с использованием mongolite (R и MongoDB) - PullRequest
0 голосов
/ 27 марта 2020

На моем локальном хосте y создали базу данных (coches) и коллекцию (dtc) в MongoDB. Моя коллекция содержит более 2 миллионов документов.

Я хотел бы подключить подмножество документов к R. Запрос, который я запустил в MongoDB, был один из этого вопроса , и я скопировал / вставил здесь:

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

Это подмножество привело к 2265 документам.

Я загрузил пакет mongolite в RStudio для подключения 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 Ответ

0 голосов
/ 27 марта 2020

Через некоторое время, проверяя разные места, я столкнулся с проблемой и поэтому смог ее решить. Проблема заключалась в том, что $exists должен быть заключен в кавычки ("$exists"). Так что код будет выглядеть так:

dtc$find('{ 
        "payload.fields.MDI_CC_DIAG_DTC_LIST" : { 
            "$exists" : true
        }, 
        "payload.asset" : { 
            "$exists" : true
        }
    }')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...