mongo-go-driver を使用したクエリ結果のフィールドの包含または除外
mongo-go-driver は、フィールドをフィルタリングするメカニズムを提供します。クエリ結果を参照して、要件に基づいて特定のフィールドを含めたり除外したりできます。ただし、findopt.Projection オプションを使用しようとすると、フィールド名が正しくエクスポートされないと問題が発生する可能性があります。
これに対処するには、フィールド名が大文字で始まり、エクスポートされたフィールドを示すようにしてください。さらに、次の例に示すように、構造体タグを使用して MongoDB フィールド名を Go 構造体フィールドにマップできます。
type fields struct { ID int16 `bson:"_id"` }
フィールド名が適切にエクスポートされているため、射影を使用してクエリを実行できます。次のように:
var opts []*find.FindOptions projection := fields{ ID: 0, } opts = append(opts, find.Projection(projection)) s := bson.NewDocument() filter := bson.NewDocument(bson.EC.ObjectID("_id", starterId)) staCon.Collection.FindOne(nil, filter, opts...).Decode(s)
または、bson.M マップを使用して、投影:
options := find.FindOptions{} options.Projection = bson.M{"_id": 0} result := staCon.Collection.FindOne(nil, filter, &options).Decode(s)
適切なフィールド エクスポートと投影を使用すると、MongoDB クエリ結果からフィールドを効果的にフィルタリングし、特定のニーズに合わせて応答を調整できます。
以上がmongo-go-driver を使用して MongoDB クエリ結果にフィールドを含めるか除外する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。