この記事では、PHP エディター Zimo が、Fiber/MongoDB レスポンスのフィールドを削除してモデルを再利用する方法を紹介します。データベースからデータを取得するとき、特定のニーズを満たすため、または機密情報を保護するために、一部のフィールドを削除する必要がある場合があります。 Fiber/MongoDB は、高パフォーマンスの Web アプリケーションを迅速に構築できる人気の PHP フレームワークです。この記事では、Fiber/MongoDB の機能を利用してフィールドを削除し、アプリケーション内のモデルを再利用することで、コードの再利用性と保守性を向上させる方法を学びます。
コードウォールを作らないように、不要なコードを再宣言しないようにしています。
私の主な質問は次の 2 つです:
47 行目で、既存のユーザー モデル userCollection.FindOne(ctx, filter, opts).Decode(&user)
が上書き/デコードされますが、更新されません (46 行目) のオプションは無効ですvar user2 = models.User
を宣言し、47 行目で user2 をデコードし、49 行目で user2
46 行目には opts := options.FindOne().SetProjection(bson.M{"password": 0})
があります。上の例の 2 番目のユーザー user2 を使用すると、JSON 応答でパスワードが返されますが、パスワードは空です。応答で使用するためだけに別のユーザー モデルを作成せずに、応答からパスワード キーを完全に削除することは可能ですか?
パスワード フィールドのない別のモデル UserResponse
を作成し、CreateUser 関数で 2 番目の User モデルを宣言して、応答のオプションを使用して FindOne の出力を表示できるようにしてみました。
数時間かけて考え出し、ここに投稿した後、素晴らしい瞬間を経験しました。
ここで行われたすべての変更は、ユーザーを空のユーザー モデルとして再宣言することです:
リーリー以上がモデルを再利用し、Fiber/MongoDB の応答からフィールドを削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。