rmongodb: usando $ ou em consulta

Eu estou lutando para criar uma consulta usando $ ou dentro de R e rmongodb. O que eu gostaria de imitar é o cmdline mongo:

db.people.find( { $or : [ {"person.cell": { $exists : true } }, {"person.home": { $exists : true } } ] })

Eu gostaria de puxar registros onde o person.cell não é nulo, ou person.home não é nulo. Eu posso consultar cada um individualmente, mas não consigo recuperar os dados quando eu crio o buffer no rmongodb com o $ ou, o código R usando o rmongodb se parece com isto:

l <- list("$exists"="true")
buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.array(buf, "$or")
mongo.bson.buffer.append.list(buf, "person.cell", l)
mongo.bson.buffer.append.list(buf, "person.home", l)
mongo.bson.buffer.finish.object(buf)  
b <- mongo.bson.from.buffer(buf)
mongo.find(mongo, "work.people", b)

Isso não retorna nenhum registro, nenhum erro, apenas um conjunto vazio. Como mencionei, posso encontrar uma pessoa em cada pessoa.cell ou person.home e obter resultados, mas não quando tento fazer um $ ou (em rmongodb), de modo que obtenho registros com qualquer pessoa.cell ou person.home .

Eu também tentei isso:

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.array(buf, "$or")
mongo.bson.buffer.start.object(buf, "person.cell")
mongo.bson.buffer.append(buf, "$exists", "true")
mongo.bson.buffer.finish.object(buf)
mongo.bson.buffer.start.object(buf, "person.home")
mongo.bson.buffer.append(buf, "$exists", "true")
mongo.bson.buffer.finish.object(buf)
mongo.bson.buffer.finish.object(buf)
b <- mongo.bson.from.buffer(buf)
mongo.find(mongo, "work.people", b)

Mas eu recebo o mesmo resultado de set vazio (e "b" parece o mesmo quando eu o vejo). Estou preso nessa.

questionAnswers(4)

yourAnswerToTheQuestion