#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 中国語 Web サイトの他の関連記事を参照してください。