2013-01-11 5 views
0

사용 rmongodb 쿼리를 구성하는 방법 : 어떤을 가진, 내가 bson 객체를 생성하는 세 가지 방법을 시도

{'$and': [{_id: {'$gte': '2013-01-01'}}, {_id: {'$lte': '2013-01-10'}}]} 

모두를위한 행운.

방법 1 :

buf = mongo.bson.buffer.create() 
mongo.bson.buffer.start.array(buf, '$and') 
mongo.bson.buffer.append(buf, '_id', list('$gte'='2013-01-01')) 
mongo.bson.buffer.append(buf, '_id', list('$lte'='2013-01-10')) 
mongo.bson.buffer.finish.object(buf) 
bson = mongo.bson.from.buffer(buf) 

방법 2 :

buf = mongo.bson.buffer.create() 
mongo.bson.buffer.start.array(buf, '$and') 
mongo.bson.buffer.start.object(buf, '_id') 
mongo.bson.buffer.append(buf, '$gte', '2013-01-01') 
mongo.bson.buffer.finish.object(buf) 
mongo.bson.buffer.start.object(buf, '_id') 
mongo.bson.buffer.append(buf, '$lte', '2013-01-10') 
mongo.bson.buffer.finish.object(buf) 
mongo.bson.buffer.finish.object(buf) 
bson = mongo.bson.from.buffer(buf) 

방법 3 : 그들 중

mongo.bson.from.list(list('$and'=list('_id' = list('$lte'='2013-01-10'), '_id' = list('$gte'='2013-01-01')))) 

없음 작동하지 않습니다. 모두 빈 결과를 반환합니다.

내가 검색 한 유일한 질문은 rmongodb: using $or in query 입니다. 해결책은 RMongo를 대신 사용하는 것이 었으며 R 2.50에서는 사용할 수 없었습니다.

나는이 문제에 며칠 동안 붙어 있습니다. 해결책을 찾지 못하면 Python으로 외부 스크립트를 작성하고 R에서 호출해야합니다.

답변

0

R을 모르지만 그 쿼리에는 실제로 $and을 사용할 필요가 없습니다. 이것은 조금 더 간단하고 R로 변환하기가 더 쉬워야합니다.

{_id: {'$gte': '2013-01-01', '$lte': '2013-01-10'}} 
0

mongo bson 배열을 만드는 방법이 잘못되었습니다. 당신은 작업 예를 들어 부품에게

mongo.bson.buffer.start.object(buf, "0") 
... 
mongo.bson.buffer.finish.object(buf) 
mongo.bson.buffer.start.object(buf, "1") 
... 
mongo.bson.buffer.finish.object(buf) 

누락에 대한 최신 의견 확인하십시오 :이 지금은 작동 희망 https://github.com/mongosoup/rmongodb/issues/17

합니다. 나는 더 쉬운 해결책을 찾고있다!