mongo-go-driver を使用した MongoDB ドキュメント内のフィールドの除外の投影
MongoDB ドキュメント内のフィールドの投影により、以下を除く特定のフィールドを選択的に取得できます。不要と判断されたもの。これにより、データ転送を最小限に抑えてパフォーマンスを向上させ、ネットワーク トラフィックを削減できます。
mongo-go-ドライバーは、findopt.Projection オプションを通じてフィールド投影のための柔軟なメカニズムを提供します。ただし、プロジェクションを確実に成功させるには、特定の実装の詳細に従う必要があります。
提供されたコード サンプル内:
<br>opts = append(opts, findopt.Projection(fields{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">_id: 0,
}))
この問題は、フィールド構造体内でエクスポートされていないフィールド名 (_id) を使用することで発生します。エクスポートされていないフィールドには、mongo-go-driver を含む他のパッケージからアクセスできません。これに対処するには:
フィールド名をエクスポートします: 大文字で始まるフィールド名 (ID など) を使用し、構造体タグを使用して MongoDB フィールドにマップします。
type fields struct { ID int `bson:"_id"` }
利用するbson.Document: または、射影用の bson.Document を構築することもできます:
projection := bson.NewDocument( bson.EC.Int32("_id", 0), )
ここで、射影を使用してクエリを実行できます:
projection := fields{ ID: 0, } result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
options.FindOne().SetProjection() を使用して正しい投影が設定されていることを確認します。
Byこれらのガイドラインに従うことで、フィールドを効果的に投影し、mongo-go-driver を使用して MongoDB ドキュメントの取得操作を最適化できます。
以上がmongo-go-driver を使用して MongoDB でフィールド除外を正しく投影する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。