2013-09-27 1 views
4

DBObject의 목록을 insert을 통해 대량로드하려고 시도 할 때 no implicit view available이 표시됩니다.암시 적보기 없음

collection.insert(listObjects) // listObjects is a List[DBObject]

[error]Test.scala:139: No implicit view available from List[com.mongodb.casba 
h.Imports.DBObject] => com.mongodb.casbah.Imports.DBObject. 

이 오류가 무엇을 의미합니까 ? 어떻게 해결할 수 있습니까?

참조 :

def insert [A] (docs: List[A])(implicit arg0: (A) ⇒ DBObject) : WriteResult

+0

수표를 줄 수 있습니까? 'listObjects'를'listObjects.asInstanceOf [List [com.mongodb.casba h.Imports.DBObject]]'로 대체하십시오. 같은 오류가 발생합니까? –

+0

동일한 오류 :'[오류] 테스트 : 139 : 목록에서 사용할 수있는 암시 적보기가 없음 [com.mongodb.casbah.Imports.DBObject] => com.mongodb.casbah.Imports.DBObject.' –

+0

@ViniciusMiana - 유형 (주석으로 표시)에 충분한 [DBObject]'리스트? 그렇지 않다면 무엇을 추가할지 알려주세요. 감사. –

답변

5

이 메소드 삽입은 어떤 목록을하지만, 몽고의 데이터를 저장할 수는 카스바는 DBOBJECT로 변환 할 필요가있다. 그렇게하기 위해 암시 적 변환을 사용합니다.이 변환은 다양한 데이터 유형에 대해 casbah에서 사용할 수 있습니다. 그러나 삽입하려는 데이터에는 변환이 구현되지 않았거나 해당 범위에서 사용 가능하지 않습니다. 이를 해결하려면 암시 ​​적 변환기를 가져 오거나 구현하십시오.

수입품이 누락되었을 수 있습니다. 당신은 확실히 가지고 있는지 확인하십시오 :

import com.mongodb.casbah.Imports._ 

을에 의해 listObjects를 교체하려고 MongoDBList(listObjects:_*)

편집 :

이 REPL에서 코멘트 시도에 대답하려면 :

scala> val a = List(1,2,3,4,5,6) 
a: List[Int] = List(1, 2, 3, 4, 5, 6) 

scala> List(a:_*) 
res0: List[Int] = List(1, 2, 3, 4, 5, 6) 

scala> List(a) 
res1: List[List[Int]] = List(List(1, 2, 3, 4, 5, 6)) 

:_* 얻을 것이다 목록 대신 요소를 사용하고 List of List를 작성하지 마십시오.

+0

암시 적 변환을 찾을 위치를 알려주시겠습니까? 나는이 임포트가이 Casbah 튜토리얼을 기반으로하는'import com.mongodb.casbah.Imports._'을 처리 할 것으로 기대했을 것입니다. "암시 적 변환 및 유형 별칭을 비롯하여 필요한 모든 것을 MongoDB 유형에 자동으로 가져 오는 Imports 객체를 제공합니다."(http://api.mongodb.org/scala/casbah/2.0/tutorial.html) –

+0

예, 저는 가져 오기를 사용하고 있습니다. –

+0

그게 내 문제를 해결했지만 지금은'BasicBSONList는 다른 게시물의 주제가 될 수있는 [_id]가 아닌 숫자 키로 만 작동 할 수 있습니다. 감사합니다 –

관련 문제