2016-03-22 21 views
3

Ich versuche, eine Mongo-Sammlung zu einem R-Datenrahmen zu konvertieren. Ich benutze rmongodb Paket, um das gleiche zu tun. Ich habe ein Problem mit Feldern mit dem Datentyp "ObjectId" (im Code unten, die Spalte "_id"), Rmongodb scheint sie nicht als gültige Felder zu erkennen und damit aus dem OP-Datenrahmen auszuschließen. Gibt es eine Möglichkeit zum Konvertieren von ObjectId-Feldern in eine Zeichenfolge oder zum Extrahieren ihrer Werte?Convert mongo objectid zu string mit rmongodb

query <- list(
mongo.bson.from.JSON(' 
{ 
"$project" : { 
"_id" :0, 
"app_id" : "$_id", 
"column_1" : "$mongo_column_1", 
######################### 

Ich habe bereits versucht, die Funktionen:

ObjectId.toString() 

und

ObjectId.valueOf() 

Aber ich denke, ich habe einige syntaktische Fehler machen und kann nicht scheinen die richtige Syntax zu finden in dieser Situation arbeiten.

P.S. Ich analysiere die gesamte Sammlung und nicht einzelne Datensätze.

+0

Wie kommst du zurück zu ** R **, wenn du toString/valueOf nicht verwendest? –

+0

@JoachimIsaksson, die gesamte oid-Spalte wird einfach übersprungen. –

Antwort

3

Ich hatte das gleiche Problem heute Morgen. Versuchen Sie es mit der mongo.oid.to.string Funktion.

l = mongo.bson.to.list(mongo.cursor.value(cursor)) 

k <- mongo.oid.to.string(l[["_id"]]) 
k 
"5242aef73edb350519b2bf3f"