@@ -1213,8 +1213,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
1213
1213
*/
1214
1214
public whereIn ( column : string , values : any [ ] ) {
1215
1215
values = values . flatMap ( value => {
1216
- if ( ObjectId . isValid ( value ) ) {
1217
- return [ value , ObjectId . ifValidSwap ( value ) ]
1216
+ if ( ObjectId . isValidStringOrObject ( value ) ) {
1217
+ return [ value , new ObjectId ( value ) ]
1218
1218
}
1219
1219
1220
1220
return [ value ]
@@ -1230,8 +1230,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
1230
1230
*/
1231
1231
public whereNotIn ( column : string , values : any [ ] ) {
1232
1232
values = values . flatMap ( value => {
1233
- if ( ObjectId . isValid ( value ) ) {
1234
- return [ value , ObjectId . ifValidSwap ( value ) ]
1233
+ if ( ObjectId . isValidStringOrObject ( value ) ) {
1234
+ return [ value , new ObjectId ( value ) ]
1235
1235
}
1236
1236
1237
1237
return [ value ]
@@ -1361,8 +1361,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
1361
1361
*/
1362
1362
public orWhereIn ( column : string , values : any [ ] ) {
1363
1363
values = values . flatMap ( value => {
1364
- if ( ObjectId . isValid ( value ) ) {
1365
- return [ value , ObjectId . ifValidSwap ( value ) ]
1364
+ if ( ObjectId . isValidStringOrObject ( value ) ) {
1365
+ return [ value , new ObjectId ( value ) ]
1366
1366
}
1367
1367
1368
1368
return [ value ]
@@ -1378,8 +1378,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
1378
1378
*/
1379
1379
public orWhereNotIn ( column : string , values : any [ ] ) {
1380
1380
values = values . flatMap ( value => {
1381
- if ( ObjectId . isValid ( value ) ) {
1382
- return [ value , ObjectId . ifValidSwap ( value ) ]
1381
+ if ( ObjectId . isValidStringOrObject ( value ) ) {
1382
+ return [ value , new ObjectId ( value ) ]
1383
1383
}
1384
1384
1385
1385
return [ value ]
@@ -1533,19 +1533,26 @@ export class MongoDriver extends Driver<Connection, Collection> {
1533
1533
const keysToSwap = Object . keys ( condition ) . filter ( key => {
1534
1534
const value = condition [ key ]
1535
1535
1536
- if ( ObjectId . isValid ( value ) ) {
1536
+ if ( ObjectId . isValidStringOrObject ( value ) ) {
1537
1537
return true
1538
1538
}
1539
1539
1540
1540
return false
1541
1541
} )
1542
1542
1543
1543
keysToSwap . forEach ( key => {
1544
+ if ( ! condition . $or ) {
1545
+ condition . $or = [ ]
1546
+ }
1547
+
1544
1548
const objectId = condition [ key ]
1545
1549
1546
- condition [ key ] = {
1547
- $or : [ { [ key ] : objectId } , { [ key ] : new ObjectId ( objectId ) } ]
1548
- }
1550
+ condition . $or . push (
1551
+ { [ key ] : objectId } ,
1552
+ { [ key ] : new ObjectId ( objectId ) }
1553
+ )
1554
+
1555
+ delete condition [ key ]
1549
1556
} )
1550
1557
1551
1558
return condition
@@ -1557,19 +1564,26 @@ export class MongoDriver extends Driver<Connection, Collection> {
1557
1564
const keysToSwap = Object . keys ( condition ) . filter ( key => {
1558
1565
const value = condition [ key ]
1559
1566
1560
- if ( ObjectId . isValid ( value ) ) {
1567
+ if ( ObjectId . isValidStringOrObject ( value ) ) {
1561
1568
return true
1562
1569
}
1563
1570
1564
1571
return false
1565
1572
} )
1566
1573
1567
1574
keysToSwap . forEach ( key => {
1575
+ if ( ! condition . $or ) {
1576
+ condition . $or = [ ]
1577
+ }
1578
+
1568
1579
const objectId = condition [ key ]
1569
1580
1570
- condition [ key ] = {
1571
- $or : [ { [ key ] : objectId } , { [ key ] : new ObjectId ( objectId ) } ]
1572
- }
1581
+ condition . $or . push (
1582
+ { [ key ] : objectId } ,
1583
+ { [ key ] : new ObjectId ( objectId ) }
1584
+ )
1585
+
1586
+ delete condition [ key ]
1573
1587
} )
1574
1588
1575
1589
return condition
0 commit comments