@@ -701,7 +701,7 @@ async def bulk_write(
701
701
self ,
702
702
requests : Sequence [_WriteOp [_DocumentType ]],
703
703
ordered : bool = True ,
704
- bypass_document_validation : bool = False ,
704
+ bypass_document_validation : Optional [ bool ] = None ,
705
705
session : Optional [AsyncClientSession ] = None ,
706
706
comment : Optional [Any ] = None ,
707
707
let : Optional [Mapping ] = None ,
@@ -800,7 +800,7 @@ async def _insert_one(
800
800
ordered : bool ,
801
801
write_concern : WriteConcern ,
802
802
op_id : Optional [int ],
803
- bypass_doc_val : bool ,
803
+ bypass_doc_val : Optional [ bool ] ,
804
804
session : Optional [AsyncClientSession ],
805
805
comment : Optional [Any ] = None ,
806
806
) -> Any :
@@ -814,8 +814,8 @@ async def _insert_one(
814
814
async def _insert_command (
815
815
session : Optional [AsyncClientSession ], conn : AsyncConnection , retryable_write : bool
816
816
) -> None :
817
- if bypass_doc_val :
818
- command ["bypassDocumentValidation" ] = True
817
+ if bypass_doc_val is not None :
818
+ command ["bypassDocumentValidation" ] = bypass_doc_val
819
819
820
820
result = await conn .command (
821
821
self ._database .name ,
@@ -840,7 +840,7 @@ async def _insert_command(
840
840
async def insert_one (
841
841
self ,
842
842
document : Union [_DocumentType , RawBSONDocument ],
843
- bypass_document_validation : bool = False ,
843
+ bypass_document_validation : Optional [ bool ] = None ,
844
844
session : Optional [AsyncClientSession ] = None ,
845
845
comment : Optional [Any ] = None ,
846
846
) -> InsertOneResult :
@@ -906,7 +906,7 @@ async def insert_many(
906
906
self ,
907
907
documents : Iterable [Union [_DocumentType , RawBSONDocument ]],
908
908
ordered : bool = True ,
909
- bypass_document_validation : bool = False ,
909
+ bypass_document_validation : Optional [ bool ] = None ,
910
910
session : Optional [AsyncClientSession ] = None ,
911
911
comment : Optional [Any ] = None ,
912
912
) -> InsertManyResult :
@@ -986,7 +986,7 @@ async def _update(
986
986
write_concern : Optional [WriteConcern ] = None ,
987
987
op_id : Optional [int ] = None ,
988
988
ordered : bool = True ,
989
- bypass_doc_val : Optional [bool ] = False ,
989
+ bypass_doc_val : Optional [bool ] = None ,
990
990
collation : Optional [_CollationIn ] = None ,
991
991
array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
992
992
hint : Optional [_IndexKeyHint ] = None ,
@@ -1041,8 +1041,8 @@ async def _update(
1041
1041
if comment is not None :
1042
1042
command ["comment" ] = comment
1043
1043
# Update command.
1044
- if bypass_doc_val :
1045
- command ["bypassDocumentValidation" ] = True
1044
+ if bypass_doc_val is not None :
1045
+ command ["bypassDocumentValidation" ] = bypass_doc_val
1046
1046
1047
1047
# The command result has to be published for APM unmodified
1048
1048
# so we make a shallow copy here before adding updatedExisting.
@@ -1082,7 +1082,7 @@ async def _update_retryable(
1082
1082
write_concern : Optional [WriteConcern ] = None ,
1083
1083
op_id : Optional [int ] = None ,
1084
1084
ordered : bool = True ,
1085
- bypass_doc_val : Optional [bool ] = False ,
1085
+ bypass_doc_val : Optional [bool ] = None ,
1086
1086
collation : Optional [_CollationIn ] = None ,
1087
1087
array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
1088
1088
hint : Optional [_IndexKeyHint ] = None ,
@@ -1128,7 +1128,7 @@ async def replace_one(
1128
1128
filter : Mapping [str , Any ],
1129
1129
replacement : Mapping [str , Any ],
1130
1130
upsert : bool = False ,
1131
- bypass_document_validation : bool = False ,
1131
+ bypass_document_validation : Optional [ bool ] = None ,
1132
1132
collation : Optional [_CollationIn ] = None ,
1133
1133
hint : Optional [_IndexKeyHint ] = None ,
1134
1134
session : Optional [AsyncClientSession ] = None ,
@@ -1237,7 +1237,7 @@ async def update_one(
1237
1237
filter : Mapping [str , Any ],
1238
1238
update : Union [Mapping [str , Any ], _Pipeline ],
1239
1239
upsert : bool = False ,
1240
- bypass_document_validation : bool = False ,
1240
+ bypass_document_validation : Optional [ bool ] = None ,
1241
1241
collation : Optional [_CollationIn ] = None ,
1242
1242
array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
1243
1243
hint : Optional [_IndexKeyHint ] = None ,
@@ -2948,6 +2948,7 @@ async def aggregate(
2948
2948
returning aggregate results using a cursor.
2949
2949
- `collation` (optional): An instance of
2950
2950
:class:`~pymongo.collation.Collation`.
2951
+ - `bypassDocumentValidation` (bool): If ``True``, allows the write to opt-out of document level validation.
2951
2952
2952
2953
2953
2954
:return: A :class:`~pymongo.asynchronous.command_cursor.AsyncCommandCursor` over the result
0 commit comments