rmongodb: używając $ lub w zapytaniu

Staram się utworzyć zapytanie za pomocą $ lub w obrębie R i rmongodb. Chciałbym emulować z cmdline mongo:

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

Chciałbym pobrać rekordy, w których albo person.cell nie ma wartości null, albo person.home nie ma wartości NULL. Mogę zapytać każdego indywidualnie, ale nie mogę odzyskać danych, gdy utworzę bufor w rmongodb za pomocą $ lub, kod R używający rmongodb wygląda tak:

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)

To nie zwraca żadnych rekordów, żadnego błędu, tylko pusty zestaw. Jak już wspomniałem, mogę znaleźć znalezisko na person.cell lub person.home i uzyskać wyniki, ale nie wtedy, gdy próbuję zrobić $ lub (w rmongodb), aby wyciągać rekordy za pomocą person.cell lub person.home .

Próbowałem również tego:

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)

Ale otrzymuję ten sam wynik pustego zestawu (a „b” wygląda tak samo, gdy go oglądam). Utknąłem na tym.

questionAnswers(4)

yourAnswerToTheQuestion