dbGetQuery
은 RMongo의 S4 제네릭입니다. 그것은 R에서이 같은 기능으로S4 제네릭의 선택적 인수
dbGetQuery(rmongo.object, collection, query, skip=0, limit=1000)
로 선언, skip
및 limit
선택적 인수입니다. 그러나, 나는이 방법으로 그것을 호출 할 때
dbGetQuery(mongo, 'changesPerTypeEpoch', '{}', limit=10000)
내가 오류 얻을 :
signature(rmongo.object="RMongo", collection="character", query="character", skip='numeric', limit='numeric')
signature(rmongo.object="RMongo", collection="character", query="character", skip='missing', limit='missing')
:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘dbGetQuery’ for signature ‘"RMongo", "character", "character", "missing", "numeric"’
소스 코드를보고, 나는 일반 대해 정의 된 두 개의 서명이있는 발견
skip
을 전달하지 않고 작동하게하려면 다른 서명이 필요합니다.
signature(rmongo.object="RMongo", collection="character", query="character", skip='missing', limit='numeric')
n
S4 범용에서 선택적 인수를 만들기 위해서는 2^n 개의 서명을 정의해야하기 때문에 불편 함을 느끼게합니다. S4 generic에서 선택적 인수를 정의하는 더 좋은 방법이 있습니까?
이 오류는'dbGetQuery'의'RSQLite' 버전을 호출 할 때도 발생합니다. 이 오류를 검색 할 때 Google에서이 대답을 반환하기 때문에이 부분을 언급합니다. 이것이 문제인지 아닌지를 결정하려면'find ('dbGetQuery')'를 실행하십시오. 여러 결과가 나타나면 Mongo 함수의 접두어에 * 네임 스페이스 * RMONGo :: dbGetQuery (...)를 붙일 수 있습니다. ' – Matt