R / Mongolite: Как $ раскрутить фрейм данных? - PullRequest
0 голосов
/ 04 сентября 2018

Я использую монголит. В моем наборе данных есть массив, который я хотел бы деконструировать с помощью $ unwind. Я сделал следующее:

pUsers <- pUsers$aggregate(pipeline = {"$unwind" : "$profile.hobbies"})

Результат:

Error in "$unwind":"$profile.hobbies" : NA/NaN argument
In addition: Warning messages:
1: In inherits(x, "bson") : NAs introduced by coercion
2: In inherits(x, "bson") : NAs introduced by coercion

Увидев сообщение об ошибке, я попытался исключить данные со значением NA со следующим кодом:

pUsers <- pUsers$aggregate(pipeline = '[
        {"$match" : {"$profile.hobbies" : {"$exists" : true}}}, 
        {"$unwind" : "$profile.hobbies"}]')

Результат:

Error: unknown top level operator: $profile.hobbies

Может кто-нибудь объяснить ошибку, которую я сделал? Кроме того, как я могу правильно размотать мой фрейм данных? Спасибо!

1 Ответ

0 голосов
/ 04 сентября 2018

Как прокомментировано, синтаксис R не соответствует вызовам запросов Mongo, особенно с фигурными скобками и двоеточиями в отличие от других языков, которые могут поддерживать эти символы в этих позициях.

Поэтому обязательно заключайте в целые вызовы строки в кавычках все необходимые символы, такие как квадратные скобки. В частности, следующее:

pUsers <- pUsers$aggregate(pipeline = {"$unwind" : "$profile.hobbies"})

Следует изменить как

pUsers <- pUsers$aggregate(pipeline = '[{"$unwind" : "$profile.hobbies"}]')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...