> 백엔드 개발 > Golang > Go에서 데이터 쿼리에 MongoDB를 사용하는 방법

Go에서 데이터 쿼리에 MongoDB를 사용하는 방법

PHPz
풀어 주다: 2023-04-07 17:50:09
원래의
1545명이 탐색했습니다.

Go는 많은 개발자가 널리 사용하는 오픈 소스 프로그래밍 언어입니다. Go는 또한 MongoDB 데이터베이스와 상호 작용할 때 효율적이고 간결한 쿼리를 작성하는 데 탁월합니다. 이 기사에서는 Go에서 MongoDB를 쿼리에 사용하는 방법을 소개합니다.

먼저 다음 명령을 사용하여 설치할 수 있는 "mgo" Go-MongoDB 드라이버를 설치해야 합니다.

go get gopkg.in/mgo.v2
로그인 후 복사

설치가 성공적으로 완료되면 MongoDB 데이터베이스에 연결하고 쿼리 작업을 수행할 수 있습니다. 다음은 기본 MongoDB 쿼리 코드입니다.

package main

import (
    "fmt"
    "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
)

type Person struct {
    Name  string
    Phone string
}

func main() {
    session, err := mgo.Dial("localhost:27017")
    if err != nil {
        panic(err)
    }
    defer session.Close()

    c := session.DB("test").C("people")
    result := Person{}
    err = c.Find(bson.M{"name": "John"}).One(&result)
    if err != nil {
        panic(err)
    }

    fmt.Println("Phone:", result.Phone)
}
로그인 후 복사

이 예에서는 먼저 쿼리할 문서의 속성을 나타내는 "Person" 구조를 만듭니다. "mgo.Dial" 메소드를 사용하여 MongoDB 데이터베이스(이 경우 localhost의 서버)에 연결하고 세션 인스턴스를 생성합니다. 그런 다음 "People" 컬렉션을 열고 "c.Find" 메서드를 사용하여 쿼리를 수행합니다. 이 경우 우리는 "John"이라는 이름의 문서를 찾고 있으며, 발견되면 결과를 "result" 변수에 저장하고 전화번호를 인쇄합니다.

기본 쿼리 외에도 일부 메서드와 조건 연산자를 사용하여 쿼리를 필터링하고 정렬할 수도 있습니다. 다음은 일반적인 메소드 및 조건부 연산자 세트의 예입니다.

err = c.Find(bson.M{"age": bson.M{"$lt": 30}}).Sort("-age").Limit(10).All(&results)
로그인 후 복사

이 코드 줄은 다음 조건을 사용합니다.

  • "$lt" 조건부 연산자는
  • 미만을 의미합니다. "-age"는 연령별 정렬을 의미합니다. 역순
  • "제한" 상위 10개 결과만 반환됨을 나타냅니다.

"선택" 방법을 사용하여 반환할 필드를 선택할 수도 있습니다.

err = c.Find(nil).Select(bson.M{"name": 1}).All(&results)
로그인 후 복사

이 예에서는 "이름"만 선택합니다. 필드. 특정 필드를 제외해야 하는 경우 해당 필드를 0으로 설정할 수 있습니다.

err = c.Find(nil).Select(bson.M{"name": 1, "age": 0}).All(&results)
로그인 후 복사

이상은 Go에서 MongoDB를 쿼리에 사용하기 위한 기본 지식입니다. 물론 여기서는 그 일부만 다루고 있습니다. MongoDB 쿼리 및 Go-MongoDB 드라이버에 대해 더 자세히 알고 싶다면 관련 자료를 참고하여 학습하시기 바랍니다.

위 내용은 Go에서 데이터 쿼리에 MongoDB를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿