MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Executando consultas avançadas do MongoDB em R com rmongodb


Tanto c() quanto list() podem estar ok. Depende se os componentes são nomeados e se todos eles têm o mesmo tipo (para lista). A melhor coisa a fazer é olhar para o BSON gerado e ver se você está obtendo o que deseja. Para melhor controle do objeto gerado utilize mongo.bson.buffer e as funções que operam nele. Na verdade, é por isso que as subconsultas estão falhando. 'comments' está sendo criado como um subobjeto em vez de uma matriz. mongo.bson.from.list() é útil, mas não lhe dá o mesmo controle e às vezes adivinha errado sobre o que gerar a partir de estruturas complicadas.

A consulta no outro conjunto de dados pode ser corrigida assim:
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)

Observe que você definitivamente precisa usar um buffer aqui, pois o R engasgará com o nome pontilhado.

Espero que isso resolva seu problema. Deixe-me saber se você tiver mais perguntas.