Docs Menu
Docs Home
/ / /
Scala
/

MongoDB에 연결

MongoDB Atlas 배포서버 에 대한 연결 문자열 검색한 후 스칼라 애플리케이션 에서 배포서버 에 연결하여 Atlas 샘플 데이터 세트를 쿼리 수 있습니다.

1

이 가이드 의다운로드 및 설치 단계에서 만든 디렉토리 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
2

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())}")
}
}

이 파일 사용하면 쿼리 결과를 인쇄하기 위한 헬퍼 메서드에 액세스 할 수 있습니다.

3

다음 코드를 복사하여 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()
}
}
4

<connection string> placeholder를 이 가이드의 연결 문자열 만들기단계에서 복사한 연결 문자열로 바꿉니다.

5

프로젝트 루트 디렉토리 에서 다음 명령을 실행 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 탭을 사용하여 피드백을 제출하세요.

돌아가기

연결 문자열 만들기