MongoDB에 연결
MongoDB Atlas 배포서버 에 대한 연결 문자열 검색한 후 스칼라 애플리케이션 에서 배포서버 에 연결하여 Atlas 샘플 데이터 세트를 쿼리 수 있습니다.
애플리케이션 파일 만들기
이 가이드 의다운로드 및 설치 단계에서 만든 디렉토리 scala-quickstart
src/main/scala/quickstart
로 이동하여 중첩 디렉토리를 만듭니다.
운영 체제에 해당하는 탭 선택하고 다음 명령을 실행 quickstart
하위 디렉토리에 Main.scala
파일 만듭니다.
cd src/main/scala/quickstart touch Main.scala
cd src/main/scala/quickstart type nul > Main.scala
헬퍼 메서드 추가
Helpers.scala
운전자 소스 src/main/scala/quickstart
코드 에서 다음 파일 디렉토리 에 추가합니다.
package quickstart import java.util.concurrent.TimeUnit import scala.concurrent.Await import scala.concurrent.duration.Duration import org.mongodb.scala._ object Helpers { implicit class DocumentObservable[C](val observable: Observable[Document]) extends ImplicitObservable[Document] { override val converter: (Document) => String = (doc) => doc.toJson } implicit class GenericObservable[C](val observable: Observable[C]) extends ImplicitObservable[C] { override val converter: (C) => String = (doc) => Option(doc).map(_.toString).getOrElse("") } trait ImplicitObservable[C] { val observable: Observable[C] val converter: (C) => String def results(): Seq[C] = Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS)) def headResult() = Await.result(observable.head(), Duration(10, TimeUnit.SECONDS)) def printResults(initial: String = ""): Unit = { if (initial.length > 0) print(initial) results().foreach(res => println(converter(res))) } def printHeadResult(initial: String = ""): Unit = println(s"${initial}${converter(headResult())}") } }
이 파일 사용하면 쿼리 결과를 인쇄하기 위한 헬퍼 메서드에 액세스 할 수 있습니다.
애플리케이션 코드 추가
다음 코드를 복사하여 sample_mflix
데이터베이스 의 movies
컬렉션 을 쿼리하는 Main.scala
파일 에 붙여넣습니다.
package quickstart import org.mongodb.scala._ import org.mongodb.scala.model.Filters._ import Helpers._ object Main { def main(args: Array[String]): Unit = { val mongoClient = MongoClient("<connection string>") val database: MongoDatabase = mongoClient.getDatabase("sample_mflix") val collection: MongoCollection[Document] = database.getCollection("movies") val filter = equal("title", "The Shawshank Redemption") collection.find(filter).printResults() mongoClient.close() } }
연결 문자열 할당
<connection string>
placeholder를 이 가이드의 연결 문자열 만들기단계에서 복사한 연결 문자열로 바꿉니다.
스칼라 애플리케이션 실행
프로젝트 루트 디렉토리 에서 다음 명령을 실행 sbt 셸 시작하고 애플리케이션 실행 .
sbt run
명령줄 출력에는 검색된 영화 문서에 대한 세부 정보가 포함됩니다.
{"_id": {"$oid": "..."}, ... , "genres": ["Crime", "Drama"], "rated": "R", "metacritic": 80, "title": "The Shawshank Redemption", ... }
오류가 발생하거나 출력이 표시되지 않는 경우 Main.scala
파일에 적절한 연결 문자열을 지정했는지, 그리고 샘플 데이터를 로드했는지 확인합니다.
팁
다음 명령을 실행 하여 sbt 셸 종료할 수 있습니다.
exit
이 단계를 완료하면 MongoDB deployment 에 연결하고 샘플 데이터에 대해 쿼리 실행하고 일치하는 문서 반환하는 스칼라 애플리케이션 생성됩니다.
참고
이 단계에서 문제가 발생하면 MongoDB Community 포럼에서 도움을 요청하거나 이 페이지 오른쪽 또는 하단의 Rate this page 탭을 사용하여 피드백을 제출하세요.