@@ -17,6 +17,7 @@ import (
17
17
"go.mongodb.org/mongo-driver/v2/bson"
18
18
"go.mongodb.org/mongo-driver/v2/internal/csfle"
19
19
"go.mongodb.org/mongo-driver/v2/internal/mongoutil"
20
+ "go.mongodb.org/mongo-driver/v2/internal/optionsutil"
20
21
"go.mongodb.org/mongo-driver/v2/internal/serverselector"
21
22
"go.mongodb.org/mongo-driver/v2/mongo/options"
22
23
"go.mongodb.org/mongo-driver/v2/mongo/readconcern"
@@ -324,8 +325,10 @@ func (coll *Collection) insert(
324
325
if args .Ordered != nil {
325
326
op = op .Ordered (* args .Ordered )
326
327
}
327
- if args .RawData != nil {
328
- op = op .RawData (* args .RawData )
328
+ if rawDataOpt := optionsutil .Value (args .CustomOptions , "rawData" ); rawDataOpt != nil {
329
+ if rawData , ok := rawDataOpt .(bool ); ok {
330
+ op = op .RawData (rawData )
331
+ }
329
332
}
330
333
retry := driver .RetryNone
331
334
if coll .client .retryWrites {
@@ -378,8 +381,12 @@ func (coll *Collection) InsertOne(ctx context.Context, document interface{},
378
381
if args .Comment != nil {
379
382
imOpts .SetComment (args .Comment )
380
383
}
381
- if args .RawData != nil {
382
- imOpts = imOpts .SetRawData (* args .RawData )
384
+ if rawDataOpt := optionsutil .Value (args .CustomOptions , "rawData" ); rawDataOpt != nil {
385
+ imOpts .Opts = append (imOpts .Opts , func (opts * options.InsertManyOptions ) error {
386
+ optionsutil .WithValue (opts .CustomOptions , "rawData" , rawDataOpt )
387
+
388
+ return nil
389
+ })
383
390
}
384
391
res , err := coll .insert (ctx , []interface {}{document }, imOpts )
385
392
@@ -540,8 +547,10 @@ func (coll *Collection) delete(
540
547
}
541
548
op = op .Let (let )
542
549
}
543
- if args .RawData != nil {
544
- op = op .RawData (* args .RawData )
550
+ if rawDataOpt := optionsutil .Value (args .CustomOptions , "rawData" ); rawDataOpt != nil {
551
+ if rawData , ok := rawDataOpt .(bool ); ok {
552
+ op = op .RawData (rawData )
553
+ }
545
554
}
546
555
547
556
// deleteMany cannot be retried
@@ -580,11 +589,11 @@ func (coll *Collection) DeleteOne(
580
589
return nil , fmt .Errorf ("failed to construct options from builder: %w" , err )
581
590
}
582
591
deleteOptions := & options.DeleteManyOptions {
583
- Collation : args .Collation ,
584
- Comment : args .Comment ,
585
- Hint : args .Hint ,
586
- Let : args .Let ,
587
- RawData : args .RawData ,
592
+ Collation : args .Collation ,
593
+ Comment : args .Comment ,
594
+ Hint : args .Hint ,
595
+ Let : args .Let ,
596
+ CustomOptions : args .CustomOptions ,
588
597
}
589
598
590
599
return coll .delete (ctx , filter , true , rrOne , deleteOptions )
@@ -1046,8 +1055,10 @@ func aggregate(a aggregateParams, opts ...options.Lister[options.AggregateOption
1046
1055
}
1047
1056
op .CustomOptions (customOptions )
1048
1057
}
1049
- if args .RawData != nil {
1050
- op = op .RawData (* args .RawData )
1058
+ if rawDataOpt := optionsutil .Value (args .CustomOptions , "rawData" ); rawDataOpt != nil {
1059
+ if rawData , ok := rawDataOpt .(bool ); ok {
1060
+ op = op .RawData (rawData )
1061
+ }
1051
1062
}
1052
1063
1053
1064
retry := driver .RetryNone
@@ -1137,8 +1148,10 @@ func (coll *Collection) CountDocuments(ctx context.Context, filter interface{},
1137
1148
}
1138
1149
op .Hint (hintVal )
1139
1150
}
1140
- if args .RawData != nil {
1141
- op = op .RawData (* args .RawData )
1151
+ if rawDataOpt := optionsutil .Value (args .CustomOptions , "rawData" ); rawDataOpt != nil {
1152
+ if rawData , ok := rawDataOpt .(bool ); ok {
1153
+ op = op .RawData (rawData )
1154
+ }
1142
1155
}
1143
1156
retry := driver .RetryNone
1144
1157
if coll .client .retryReads {
@@ -1221,8 +1234,10 @@ func (coll *Collection) EstimatedDocumentCount(
1221
1234
}
1222
1235
op = op .Comment (comment )
1223
1236
}
1224
- if args .RawData != nil {
1225
- op = op .RawData (* args .RawData )
1237
+ if rawDataOpt := optionsutil .Value (args .CustomOptions , "rawData" ); rawDataOpt != nil {
1238
+ if rawData , ok := rawDataOpt .(bool ); ok {
1239
+ op = op .RawData (rawData )
1240
+ }
1226
1241
}
1227
1242
1228
1243
retry := driver .RetryNone
@@ -1313,8 +1328,10 @@ func (coll *Collection) Distinct(
1313
1328
}
1314
1329
op .Hint (hint )
1315
1330
}
1316
- if args .RawData != nil {
1317
- op = op .RawData (* args .RawData )
1331
+ if rawDataOpt := optionsutil .Value (args .CustomOptions , "rawData" ); rawDataOpt != nil {
1332
+ if rawData , ok := rawDataOpt .(bool ); ok {
1333
+ op = op .RawData (rawData )
1334
+ }
1318
1335
}
1319
1336
retry := driver .RetryNone
1320
1337
if coll .client .retryReads {
0 commit comments