@@ -14,6 +14,7 @@ import (
1414 "strconv"
1515
1616 "go.mongodb.org/mongo-driver/v2/internal/mongoutil"
17+ "go.mongodb.org/mongo-driver/v2/internal/optionsutil"
1718 "go.mongodb.org/mongo-driver/v2/internal/serverselector"
1819 "go.mongodb.org/mongo-driver/v2/mongo/options"
1920 "go.mongodb.org/mongo-driver/v2/mongo/readpref"
@@ -101,6 +102,11 @@ func (iv IndexView) List(ctx context.Context, opts ...options.Lister[options.Lis
101102 op = op .BatchSize (* args .BatchSize )
102103 cursorOpts .BatchSize = * args .BatchSize
103104 }
105+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
106+ if rawData , ok := rawDataOpt .(bool ); ok {
107+ op = op .RawData (rawData )
108+ }
109+ }
104110
105111 retry := driver .RetryNone
106112 if iv .coll .client .retryReads {
@@ -279,6 +285,11 @@ func (iv IndexView) CreateMany(
279285
280286 op .CommitQuorum (commitQuorum )
281287 }
288+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
289+ if rawData , ok := rawDataOpt .(bool ); ok {
290+ op = op .RawData (rawData )
291+ }
292+ }
282293
283294 _ , err = processWriteError (op .Execute (ctx ))
284295 if err != nil {
@@ -376,7 +387,12 @@ func (iv IndexView) createOptionsDoc(opts options.Lister[options.IndexOptions])
376387 return optsDoc , nil
377388}
378389
379- func (iv IndexView ) drop (ctx context.Context , index any , _ ... options.Lister [options.DropIndexesOptions ]) error {
390+ func (iv IndexView ) drop (ctx context.Context , index any , opts ... options.Lister [options.DropIndexesOptions ]) error {
391+ args , err := mongoutil .NewOptions [options.DropIndexesOptions ](opts ... )
392+ if err != nil {
393+ return fmt .Errorf ("failed to construct options from builder: %w" , err )
394+ }
395+
380396 if ctx == nil {
381397 ctx = context .Background ()
382398 }
@@ -387,7 +403,7 @@ func (iv IndexView) drop(ctx context.Context, index any, _ ...options.Lister[opt
387403 defer sess .EndSession ()
388404 }
389405
390- err : = iv .coll .client .validSession (sess )
406+ err = iv .coll .client .validSession (sess )
391407 if err != nil {
392408 return err
393409 }
@@ -408,6 +424,12 @@ func (iv IndexView) drop(ctx context.Context, index any, _ ...options.Lister[opt
408424 Deployment (iv .coll .client .deployment ).ServerAPI (iv .coll .client .serverAPI ).
409425 Timeout (iv .coll .client .timeout ).Crypt (iv .coll .client .cryptFLE ).Authenticator (iv .coll .client .authenticator )
410426
427+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
428+ if rawData , ok := rawDataOpt .(bool ); ok {
429+ op = op .RawData (rawData )
430+ }
431+ }
432+
411433 err = op .Execute (ctx )
412434 if err != nil {
413435 return wrapErrors (err )
0 commit comments