Запрос RMongo с ObjectId
Есть ли способ сделать запрос в RMongo с ObjectId?
Что-то вроде:
results <- dbGetQuery(mongo, "users", "{'_id': 'ObjectId('5158ce108b481836aee879f8')'}")
Возможно, импортируя библиотеку bson?
3 ответа
RMongo-х dbGetQuery()
функция ожидает расширенный синтаксис JSON MongoDB для предоставленной строки запроса.
MongoDB Extended JSON эквивалент ObjectId("<id>")
является { "$oid": "<id>" }
:
results <- dbGetQuery(mongo, "users", "{'_id': { '$oid': '5158ce108b481836aee879f8' }}")
Попробуйте новый пакет монголита:
library(mongolite)
m <- mongo("users")
m$find('{"_id":{"$oid":"5158ce108b481836aee879f8"}}')
mongo.oid.from.string {rmongodb}
Создать объект mongo.oid из строки. Пакет: rmongodb Версия: 1.5.3 Описание Создать из 24-символьной шестнадцатеричной строки объект mongo.oid, представляющий идентификатор объекта MongoDB.
Использование mongo.oid.from.string(hexstr) Аргументы hexstr (строка) 24 шестнадцатеричных символа, представляющих OID. Обратите внимание, что хотя выдается ошибка, если длина не 24, ошибка не выдается, если символы не являются шестнадцатеричными цифрами; вы получите ноль битов за недопустимые цифры.
Подробности см. http://www.mongodb.org/display/DOCS/Object+IDs
Ценности