MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Exécuter des requêtes MongoDB avancées dans R avec rmongodb

Soit c() soit list() peut convenir. Cela dépend si les composants sont nommés et s'ils ont tous le même type (pour la liste). La meilleure chose à faire est de regarder le BSON généré et de voir si vous obtenez ce que vous voulez. Pour un meilleur contrôle de l'objet généré, utilisez mongo.bson.buffer et les fonctions qui fonctionnent dessus. En fait, c'est pourquoi les sous-requêtes échouent. 'comments' est créé en tant que sous-objet plutôt qu'en tant que tableau. mongo.bson.from.list() est pratique mais il ne vous donne pas le même contrôle et parfois il se trompe sur ce qu'il faut générer à partir de structures compliquées.

La requête sur l'autre ensemble de données peut être corrigée comme suit :

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)

Notez que vous devez absolument utiliser un tampon ici car R s'étouffera avec le nom en pointillé.

J'espère que cela résoudra votre problème. N'hésitez pas à me contacter si vous avez d'autres questions.