有没有办法在 RMongo 中使用 ObjectId 进行查询?
就像是:
results <- dbGetQuery(mongo, "users", "{'_id': 'ObjectId('5158ce108b481836aee879f8')'}")
也许通过导入 bson 库?
RMongo 的dbGetQuery()
函数期望提供的查询字符串使用 MongoDB 扩展 JSON 语法。
MongoDB 扩展 JSON 等效ObjectId("<id>")
于{ "$oid": "<id>" }
:
results <- dbGetQuery(mongo, "users", "{'_id': { '$oid': '5158ce108b481836aee879f8' }}")
试试新的 mongolite 包:
library(mongolite)
m <- mongo("users")
m$find('{"_id":{"$oid":"5158ce108b481836aee879f8"}}')
mongo.oid.from.string {rmongodb}
从字符串创建一个 mongo.oid 对象 包:rmongodb 版本:1.5.3 描述 从一个 24 个字符的十六进制字符串创建一个表示 MongoDB 对象 ID 的 mongo.oid 对象。
用法 mongo.oid.from.string(hexstr) 参数 hexstr (string) 代表 OID 的 24 个十六进制字符。注意,虽然长度不是24会报错,但如果字符不是十六进制数字就不会报错;对于无效数字,您将获得零位。
详情见http://www.mongodb.org/display/DOCS/Object+IDs
价值观