>  기사  >  백엔드 개발  >  객체 배열의 값이 존재하는지 확인하십시오.

객체 배열의 값이 존재하는지 확인하십시오.

WBOY
WBOY앞으로
2024-02-10 13:30:211081검색

检查对象数组中的值是否存在 golang

이번 글에서는 PHP 에디터 Baicao가 객체 배열의 값이 golang에 존재하는지 확인하는 방법을 소개하겠습니다. 개발 과정에서 우리는 배열을 연산하고 판단해야 하는 경우가 종종 있으며, 어떤 경우에는 객체 배열에 특정 값이 존재하는지 확인해야 할 때도 있습니다. 이 프로세스에는 배열 탐색, 값 비교 등이 포함될 수 있습니다. 아래에서는 이 기능을 구현하는 방법을 단계별로 소개합니다.

질문 내용

mongo 데이터베이스에 추가하기 전에 새로운 값이 있는지 확인하려고 하는데 매번 오류가 뜹니다.

으아악

내 문서는 다음과 같습니다

으아악

.... }

상태가 다양하므로 새 값으로 업데이트하기 전에 동일한 상태가 데이터베이스에 여러 번 전송되지 않는지 확인하고 싶습니다.

으아악

utils.todoc

으아악

업데이트해 보세요

으아악

반품 오류

obid, _ := primitive.objectidfromhex(id)
        query := bson.d{{key: "_id", value: obid}}
    
        var result bson.m
        er := r.collection.findone(ctx, bson.m{"_id": obid, "statusdata.status": bson.m{"$in": []string{string(p.status)}}}).decode(&result)
        if er != nil {
            if er == mongo.errnodocuments {
                return nil, errors.new(fmt.sprintf("err na  %v, %v", er.error(), p.status))
            }
            return nil, errors.new(fmt.sprintf("err norr  %v", er.error()))
        }

doc, err := utils.todoc(p)
    if err != nil {
        return nil, errors.new(err.error())
    }

    update := bson.d{{key: "$set", value: doc}}
    res := r.collection.findoneandupdate(ctx, query, update, options.findoneandupdate().setreturndocument(1))

해결 방법

필터를 사용하여 추가하려는 상태의 문서를 제외하세요. 상태가 이미 배열에 있는 경우 이 필터는 어떤 문서와도 일치하지 않습니다. 업데이트 작업은 상태가 아직 추가되지 않은 경우에만 수행됩니다.

으아악

위 내용은 객체 배열의 값이 존재하는지 확인하십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제