Я не думаю, что вы действительно можете сделать это напрямую.
Если бы вы могли, это в значительной степени пошло бы вразрез со всей философией базы данных NoSQL (которой является Mongo).Идея NoSQL-базы данных состоит в том, что у вас есть коллекция документов, у которых все могут иметь свои собственные поля.
Аналогия с бумажными документами действительно работает, и понятие «столбцы» заменяется «полями»,которые относятся не к коллекции в целом, а к отдельным документам, и каждый документ может содержать все, что угодно.И не существует всеобъемлющего обязательного шаблона, в который все должно вписываться.На практике многие документы будут иметь похожую структуру, но это ни в коем случае не гарантируется.Это означает, что вполне возможно, что у вас есть 100 миллионов документов с 3 полями, называемыми «a», «b» и «c», а этот документ 100000001 имеет 4 поля: a, b, c и d.
Может быть, движок базы данных отслеживает, какие поля находятся где-то в коллекции, но я сомневаюсь в этом.А если этого не произойдет, единственный способ получить все четыре имени a, b, c и d - это просмотреть все 100000001 документов (или более), что займет некоторое время.Несомненно, некоторая оптимизация реализована, но это всегда будет трудный вопрос.
Если вы просто хотите получить ответ для небольшой БД, я думаю, просто запросить все документы и взять имена столбцов полученных данных.frame - самый простой.
Но если ваша база данных велика, этот вопрос больше не касается R или монголита, и мне недостаточно работать с Mongo, чтобы помочь вам в дальнейшем.