mongo-go-driver를 사용하여 MongoDB 문서의 필드 필터링
MongoDB 쿼리의 주요 기능 중 하나는 필드를 필터링하는 기능입니다. 쿼리 결과로 반환됩니다. 이를 필드 투영이라고 합니다.
필드 투영으로 쿼리
mongo-go-driver는 필드 투영을 지정하기 위한 여러 옵션을 제공합니다. 한 가지 옵션은 findopt.Projection 함수를 사용하는 것입니다. 그러나 앞서 살펴본 것처럼 프로젝션 구조의 필드 이름을 내보내지 않으면 이 접근 방식이 실패할 수 있습니다. 이 문제를 해결하려면 다음 전략을 사용할 수 있습니다.
방법 1: 내보낸 필드 이름 사용
가장 간단한 접근 방식은 내보낸 필드 이름(예: 대문자로 시작하는 필드)를 프로젝션 구조체에 추가하세요. 이렇게 하면 mongo-go-driver가 필드 이름에 액세스할 수 있습니다.
type Fields struct { ID int `bson:"_id"` } projection := Fields{ ID: 0, }
방법 2: 구조체 태그 활용
또는 구조체 태그를 사용할 수 있습니다. 내보내지 않은 필드 이름을 해당 MongoDB 필드에 매핑합니다. names.
type Fields struct { _id int `bson:"_id"` } projection := Fields{ _id: 0, }
쿼리에서 프로젝션 사용
프로젝션을 정의한 후에는 SetProjection을 설정하여 FindOne 또는 Find 메서드에서 사용할 수 있습니다. option.
filter := bson.NewDocument(bson.EC.ObjectID("_id", starterId)) result := staCon.collection.FindOne(nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
사용예 bson.M
mongo-go-driver의 최신 버전에서는 간단한 bson.M 맵을 사용하여 투영을 지정할 수도 있습니다.
options.FindOne().SetProjection(bson.M{"_id": 0})
위 내용은 mongo-go-driver를 사용하여 MongoDB 필드를 효과적으로 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!