MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ausführen erweiterter MongoDB-Abfragen in R mit rmongodb

Entweder c() oder list() kann in Ordnung sein. Hängt davon ab, ob die Komponenten benannt sind und ob sie alle den gleichen Typ haben (für Liste). Am besten schauen Sie sich den generierten BSON an und sehen, ob Sie das bekommen, was Sie wollen. Für die beste Kontrolle über das generierte Objekt verwenden Sie mongo.bson.buffer und die damit arbeitenden Funktionen. Aus diesem Grund schlagen die Unterabfragen fehl. „Kommentare“ wird als Unterobjekt und nicht als Array erstellt. mongo.bson.from.list() ist praktisch, aber es gibt Ihnen nicht die gleiche Kontrolle und manchmal schätzt es falsch, was aus komplizierten Strukturen generiert werden soll.

Die Abfrage auf den anderen Datensatz kann aber wie folgt korrigiert werden:

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "name.first")
mongo.bson.buffer.append(buf, "$in", c("Alex", "Horst"))
mongo.bson.buffer.finish.object(buf)
criteria <- mongo.bson.from.buffer(buf)

Beachten Sie, dass Sie hier unbedingt einen Puffer verwenden müssen, da R den gepunkteten Namen verschluckt.

Ich hoffe, das behebt Ihr Problem. Lassen Sie mich wissen, wenn Sie weitere Fragen haben.