@@ -1213,8 +1213,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
12131213 */
12141214 public whereIn ( column : string , values : any [ ] ) {
12151215 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 ) ]
12181218 }
12191219
12201220 return [ value ]
@@ -1230,8 +1230,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
12301230 */
12311231 public whereNotIn ( column : string , values : any [ ] ) {
12321232 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 ) ]
12351235 }
12361236
12371237 return [ value ]
@@ -1361,8 +1361,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
13611361 */
13621362 public orWhereIn ( column : string , values : any [ ] ) {
13631363 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 ) ]
13661366 }
13671367
13681368 return [ value ]
@@ -1378,8 +1378,8 @@ export class MongoDriver extends Driver<Connection, Collection> {
13781378 */
13791379 public orWhereNotIn ( column : string , values : any [ ] ) {
13801380 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 ) ]
13831383 }
13841384
13851385 return [ value ]
@@ -1533,19 +1533,26 @@ export class MongoDriver extends Driver<Connection, Collection> {
15331533 const keysToSwap = Object . keys ( condition ) . filter ( key => {
15341534 const value = condition [ key ]
15351535
1536- if ( ObjectId . isValid ( value ) ) {
1536+ if ( ObjectId . isValidStringOrObject ( value ) ) {
15371537 return true
15381538 }
15391539
15401540 return false
15411541 } )
15421542
15431543 keysToSwap . forEach ( key => {
1544+ if ( ! condition . $or ) {
1545+ condition . $or = [ ]
1546+ }
1547+
15441548 const objectId = condition [ key ]
15451549
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 ]
15491556 } )
15501557
15511558 return condition
@@ -1557,19 +1564,26 @@ export class MongoDriver extends Driver<Connection, Collection> {
15571564 const keysToSwap = Object . keys ( condition ) . filter ( key => {
15581565 const value = condition [ key ]
15591566
1560- if ( ObjectId . isValid ( value ) ) {
1567+ if ( ObjectId . isValidStringOrObject ( value ) ) {
15611568 return true
15621569 }
15631570
15641571 return false
15651572 } )
15661573
15671574 keysToSwap . forEach ( key => {
1575+ if ( ! condition . $or ) {
1576+ condition . $or = [ ]
1577+ }
1578+
15681579 const objectId = condition [ key ]
15691580
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 ]
15731587 } )
15741588
15751589 return condition
0 commit comments