rmongodb: usando $ o en la consulta

Estoy luchando para crear una consulta usando $ o dentro de R y rmongodb. Lo que me gustaría emular es esto de cmdline mongo:

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

Me gustaría extraer registros en los que o bien person.cell no es nulo o person.home no es nulo. Puedo consultar cada uno individualmente, pero no puedo recuperar los datos cuando creo el búfer en rmongodb con $ o, el código R que usa rmongodb se parece a esto:

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)

Eso no devuelve ningún registro, ningún error, solo un conjunto vacío. Como mencioné, puedo hacer un hallazgo en person.cell o person.home y obtener resultados, pero no cuando trato de hacer $ o (en rmongodb) de modo que extraiga registros con person.cell o person.home .

También he intentado esto:

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)

Pero obtengo el mismo resultado de conjunto vacío (y "b" se ve igual cuando lo veo). Estoy atascado en este.

Respuestas a la pregunta(4)

Su respuesta a la pregunta