rmongodb: используя $ или в запросе

Я изо всех сил пытаюсь создать запрос, используя $ или внутри R и rmongodb. То, что я хотел бы подражать, это из cmdline mongo:

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

Я хотел бы получить записи, в которых значение person.cell не равно нулю, или person.home не равно нулю. Я могу запросить каждый по отдельности, но не могу получить данные обратно, когда я создаю буфер в rmongodb с помощью $ или, код R с использованием rmongodb выглядит следующим образом:

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)

Это не возвращает ни записей, ни ошибок, просто пустой набор. Как я уже упоминал, я могу найти либо в person.cell, либо в person.home и получить результаты, но не тогда, когда я пытаюсь сделать $ или (в rmongodb), чтобы я получал записи с помощью person.cell или person.home. ,

Я также пробовал это:

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)

Но я получаю тот же пустой результат набора (и "b" выглядит так же, когда я его просматриваю). Я застрял на этом.

Ответы на вопрос(4)

Ваш ответ на вопрос