MongoDB Go 드라이버를 사용한 중첩된 논리 쿼리
MongoDB 쿼리에서는 문서 기반 필터링을 위해 중첩된 논리 연산자(AND/OR)를 사용해야 하는 경우가 많습니다. 여러 기준에 따라. Go MongoDB 드라이버에서는 bson.D 및 bson.M 유형을 사용하여 중첩된 논리적 쿼리를 구성할 수 있습니다.
중첩된 OR/AND 쿼리 구성
중첩된 OR/AND 쿼리의 경우 bson.D 유형을 사용하여 외부 논리 연산자(예: $and)를 나타내고 bson.E 요소를 전달해야 합니다. 각 bson.E 요소는 필드-값 쌍을 나타냅니다. 여기서 필드 이름은 논리 연산자(예: $or)일 수 있고 값은 bson.D 또는 bson.A(배열의 경우)일 수 있습니다.
중첩된 OR/AND 쿼리의 예
MongoDB 쿼리를 고려하세요:
{ "$and": { "p": 10, "$or": { "s": 30, "a": 1 } } }
MongoDB 드라이버를 사용하여 Go에서 이 쿼리를 표현하려면 다음 코드를 사용할 수 있습니다.
filter := bson.D{ {"p", 10}, {"$or", bson.A{ bson.D{{"s", 30}}, bson.D{{"a", 1}}, }}, }
이 예에서 bson.D는 외부 $and 연산자를 나타내고 bson.A는 중첩된 $or 연산자를 나타냅니다. $or 내의 각 bson.D는 하위 쿼리를 나타냅니다.
중첩 쿼리에 bson.M 사용
bson.M 유형을 사용하여 나타낼 수도 있습니다. 중첩된 쿼리. bson.M은 필드 이름과 해당 값을 포함할 수 있는 map[string]인터페이스{}입니다. 값은 중첩된 쿼리를 나타내는 또 다른 bson.M 인스턴스일 수 있습니다.
예를 들어 위 쿼리는 bson.M을 사용하여 다음과 같이 나타낼 수 있습니다.
filter := bson.M{ "p": 10, "$or": bson.A{ bson.M{"s": 30}, bson.M{"a": 1}, }, }
권장사항
이 지침을 따르면 MongoDB 드라이버를 사용하여 Go에서 중첩된 OR/AND 쿼리를 효율적으로 생성할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3