@@ -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,6 +325,11 @@ func (coll *Collection) insert(
324
325
if args .Ordered != nil {
325
326
op = op .Ordered (* args .Ordered )
326
327
}
328
+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
329
+ if rawData , ok := rawDataOpt .(bool ); ok {
330
+ op = op .RawData (rawData )
331
+ }
332
+ }
327
333
retry := driver .RetryNone
328
334
if coll .client .retryWrites {
329
335
retry = driver .RetryOncePerCommand
@@ -375,6 +381,13 @@ func (coll *Collection) InsertOne(ctx context.Context, document interface{},
375
381
if args .Comment != nil {
376
382
imOpts .SetComment (args .Comment )
377
383
}
384
+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
385
+ imOpts .Opts = append (imOpts .Opts , func (opts * options.InsertManyOptions ) error {
386
+ optionsutil .WithValue (opts .Internal , "rawData" , rawDataOpt )
387
+
388
+ return nil
389
+ })
390
+ }
378
391
res , err := coll .insert (ctx , []interface {}{document }, imOpts )
379
392
380
393
rr , err := processWriteError (err )
@@ -534,6 +547,11 @@ func (coll *Collection) delete(
534
547
}
535
548
op = op .Let (let )
536
549
}
550
+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
551
+ if rawData , ok := rawDataOpt .(bool ); ok {
552
+ op = op .RawData (rawData )
553
+ }
554
+ }
537
555
538
556
// deleteMany cannot be retried
539
557
retryMode := driver .RetryNone
@@ -575,6 +593,7 @@ func (coll *Collection) DeleteOne(
575
593
Comment : args .Comment ,
576
594
Hint : args .Hint ,
577
595
Let : args .Let ,
596
+ Internal : args .Internal ,
578
597
}
579
598
580
599
return coll .delete (ctx , filter , true , rrOne , deleteOptions )
@@ -1036,6 +1055,11 @@ func aggregate(a aggregateParams, opts ...options.Lister[options.AggregateOption
1036
1055
}
1037
1056
op .CustomOptions (customOptions )
1038
1057
}
1058
+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
1059
+ if rawData , ok := rawDataOpt .(bool ); ok {
1060
+ op = op .RawData (rawData )
1061
+ }
1062
+ }
1039
1063
1040
1064
retry := driver .RetryNone
1041
1065
if a .retryRead && ! hasOutputStage {
@@ -1124,6 +1148,11 @@ func (coll *Collection) CountDocuments(ctx context.Context, filter interface{},
1124
1148
}
1125
1149
op .Hint (hintVal )
1126
1150
}
1151
+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
1152
+ if rawData , ok := rawDataOpt .(bool ); ok {
1153
+ op = op .RawData (rawData )
1154
+ }
1155
+ }
1127
1156
retry := driver .RetryNone
1128
1157
if coll .client .retryReads {
1129
1158
retry = driver .RetryOncePerCommand
@@ -1205,6 +1234,11 @@ func (coll *Collection) EstimatedDocumentCount(
1205
1234
}
1206
1235
op = op .Comment (comment )
1207
1236
}
1237
+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
1238
+ if rawData , ok := rawDataOpt .(bool ); ok {
1239
+ op = op .RawData (rawData )
1240
+ }
1241
+ }
1208
1242
1209
1243
retry := driver .RetryNone
1210
1244
if coll .client .retryReads {
@@ -1294,6 +1328,11 @@ func (coll *Collection) Distinct(
1294
1328
}
1295
1329
op .Hint (hint )
1296
1330
}
1331
+ if rawDataOpt := optionsutil .Value (args .Internal , "rawData" ); rawDataOpt != nil {
1332
+ if rawData , ok := rawDataOpt .(bool ); ok {
1333
+ op = op .RawData (rawData )
1334
+ }
1335
+ }
1297
1336
retry := driver .RetryNone
1298
1337
if coll .client .retryReads {
1299
1338
retry = driver .RetryOncePerCommand
0 commit comments