@@ -260,13 +260,23 @@ export class MongoDriver implements DriverContract {
260
260
261
261
async insert ( values : any | any [ ] ) : Promise < string [ ] > {
262
262
if ( Is . Array ( values ) ) {
263
+ values . forEach ( value => {
264
+ Object . keys ( value ) . forEach ( key => {
265
+ value [ key ] = MongoDriver . stringToObjectId ( value [ key ] )
266
+ } )
267
+ } )
268
+
263
269
const data = await this . queryBuilder . insertMany ( values )
264
270
265
271
return Object . keys ( data . insertedIds ) . map ( key =>
266
272
data . insertedIds [ key ] . toString ( ) ,
267
273
)
268
274
}
269
275
276
+ Object . keys ( values ) . forEach ( key => {
277
+ values [ key ] = MongoDriver . stringToObjectId ( values [ key ] )
278
+ } )
279
+
270
280
const data = await this . queryBuilder . insertOne ( values , {
271
281
session : this . session ,
272
282
} )
@@ -283,7 +293,11 @@ export class MongoDriver implements DriverContract {
283
293
}
284
294
285
295
async update ( key : any | string , value ?: any ) : Promise < string [ ] > {
286
- if ( typeof key === 'object' ) {
296
+ if ( Is . Object ( key ) ) {
297
+ Object . keys ( key ) . forEach ( k => {
298
+ key [ k ] = MongoDriver . stringToObjectId ( key [ k ] )
299
+ } )
300
+
287
301
const { modifiedCount } = await this . queryBuilder . updateMany (
288
302
this . _where ,
289
303
{ $set : key } ,
@@ -301,6 +315,8 @@ export class MongoDriver implements DriverContract {
301
315
return data . map ( model => model . _id . toString ( ) )
302
316
}
303
317
318
+ value = MongoDriver . stringToObjectId ( value )
319
+
304
320
const { modifiedCount } = await this . queryBuilder . updateMany (
305
321
this . _where ,
306
322
{ $set : { [ key ] : value } } ,
@@ -319,7 +335,11 @@ export class MongoDriver implements DriverContract {
319
335
}
320
336
321
337
async updateAndGet ( key : any | string , value ?: any ) : Promise < any [ ] > {
322
- if ( typeof key === 'object' ) {
338
+ if ( Is . Object ( key ) ) {
339
+ Object . keys ( key ) . forEach ( k => {
340
+ key [ k ] = MongoDriver . stringToObjectId ( key [ k ] )
341
+ } )
342
+
323
343
const { modifiedCount } = await this . queryBuilder . updateMany (
324
344
this . _where ,
325
345
{ $set : key } ,
@@ -335,6 +355,8 @@ export class MongoDriver implements DriverContract {
335
355
return this . queryBuilder . find ( this . where ) . toArray ( )
336
356
}
337
357
358
+ value = MongoDriver . stringToObjectId ( value )
359
+
338
360
const { modifiedCount } = await this . queryBuilder . updateMany (
339
361
this . _where ,
340
362
{ $set : { [ key ] : value } } ,
0 commit comments