RMongo に問題があるため、自分の作業を rmongodb に変換しようとしています。ここから、私のクエリはmongoコンソールで次のようになります。
db.final.find({},{"ids.myid":1,"org.name":1,"_id":0}).skip(0).limit(5000)
RMongo では次のようになります。
dbGetQueryForKeys(db,'final', '{}','{"ids.myid":1,"org.name":1,"_id":0}',skip=0,limit=5000)
(後者は値を返しませんが、Mongo コンソールは機能します。)
ドキュメントからの私の理解では、rmongodb では次のようになります。
library(rmongodb)
mcon <- mongo.create(host="myurl:port",db="dbname")
fields = mongo.bson.buffer.create()
mongo.bson.buffer.append(fields, "ids.myid", 1L)
mongo.bson.buffer.append(fields, "org.name", 1L)
mongo.bson.buffer.append(fields, "_id", 0L)
cur <- mongo.find(mcon,"final",fields=fields, limit=5000) # query takes the default null
df <- mongo.cursor.to.data.frame(cur)
しかし、私は得ています:
data frame with 0 columns and 0 rows
元のクエリの rmongodb への正しい翻訳は何ですか?
次の理由により、接続が有効であることはわかっています。
mongo.get.databases(mcon)
動作し、正しいデータベースを表示します。ただし、コレクションの呼び出し方に問題があるようです。
mongo.find.one(mcon,"final")
NULLを返しています。これは正常に動作しているにもかかわらずdb.final.findOne()
です!