Получить ObjectID в монголитовой библиотеке R

Я могу успешно получить данные из своего экземпляра mongoDB, но мне нужно повторно использовать идентификатор объекта для зависимого запроса.

Следующий код, кажется, получает весь мой объект, но НЕ идентификатор. Что мне не хватает?

# Perform a query and retrieve data
mongoOBj <- m$find('{"em": "[email protected]"}')

person DirkLX    schedule 18.12.2015    source источник


Ответы (3)


Если вы посмотрите на документацию, вы увидите, что метод find принимает аргумент field, где вы указываете нужные поля:

find(query = ’{}’, fields = ’{"_id" : 0}’, sort = ’{}’, skip = 0, limit = 0, handler = NULL, pagesize = NULL)

Итак, в вашем случае это будет что-то вроде

mongoOBj <- m$find(query = '{"em": "[email protected]"}', field = '{"_id": 1}')
person tospig    schedule 20.12.2015

Я понимаю, что это старый вопрос, и ОП, вероятно, уже понял это, но я думаю, что ответ должен быть

mongoOBj <- m$find(query = '{"em": "[email protected]"}', field = '{}') 

вместо

mongoOBj <- m$find(query = '{"em": "[email protected]"}', field = '{"_id": 1}')

Во втором случае результатом будет фрейм данных, содержащий ТОЛЬКО идентификаторы. Первая строка приведет к кадру данных, содержащему запрошенные данные, включая идентификаторы.

По умолчанию field = '{"_id": 0}' означает, что _id не является частью вывода.

person Pavlova    schedule 09.01.2018

К сведению, самый простой способ получить все поля — выполнить запрос с field="{}". Это перезапишет значение по умолчанию в списке аргументов mongolite::package find().

Меня это тоже какое-то время сводило с ума.

person Richard Vireday    schedule 04.03.2019