@@ -701,7 +701,7 @@ async def bulk_write(
701701 self ,
702702 requests : Sequence [_WriteOp [_DocumentType ]],
703703 ordered : bool = True ,
704- bypass_document_validation : bool = False ,
704+ bypass_document_validation : Optional [ bool ] = None ,
705705 session : Optional [AsyncClientSession ] = None ,
706706 comment : Optional [Any ] = None ,
707707 let : Optional [Mapping ] = None ,
@@ -800,7 +800,7 @@ async def _insert_one(
800800 ordered : bool ,
801801 write_concern : WriteConcern ,
802802 op_id : Optional [int ],
803- bypass_doc_val : bool ,
803+ bypass_doc_val : Optional [ bool ] ,
804804 session : Optional [AsyncClientSession ],
805805 comment : Optional [Any ] = None ,
806806 ) -> Any :
@@ -814,8 +814,8 @@ async def _insert_one(
814814 async def _insert_command (
815815 session : Optional [AsyncClientSession ], conn : AsyncConnection , retryable_write : bool
816816 ) -> None :
817- if bypass_doc_val :
818- command ["bypassDocumentValidation" ] = True
817+ if bypass_doc_val is not None :
818+ command ["bypassDocumentValidation" ] = bypass_doc_val
819819
820820 result = await conn .command (
821821 self ._database .name ,
@@ -840,7 +840,7 @@ async def _insert_command(
840840 async def insert_one (
841841 self ,
842842 document : Union [_DocumentType , RawBSONDocument ],
843- bypass_document_validation : bool = False ,
843+ bypass_document_validation : Optional [ bool ] = None ,
844844 session : Optional [AsyncClientSession ] = None ,
845845 comment : Optional [Any ] = None ,
846846 ) -> InsertOneResult :
@@ -906,7 +906,7 @@ async def insert_many(
906906 self ,
907907 documents : Iterable [Union [_DocumentType , RawBSONDocument ]],
908908 ordered : bool = True ,
909- bypass_document_validation : bool = False ,
909+ bypass_document_validation : Optional [ bool ] = None ,
910910 session : Optional [AsyncClientSession ] = None ,
911911 comment : Optional [Any ] = None ,
912912 ) -> InsertManyResult :
@@ -986,7 +986,7 @@ async def _update(
986986 write_concern : Optional [WriteConcern ] = None ,
987987 op_id : Optional [int ] = None ,
988988 ordered : bool = True ,
989- bypass_doc_val : Optional [bool ] = False ,
989+ bypass_doc_val : Optional [bool ] = None ,
990990 collation : Optional [_CollationIn ] = None ,
991991 array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
992992 hint : Optional [_IndexKeyHint ] = None ,
@@ -1041,8 +1041,8 @@ async def _update(
10411041 if comment is not None :
10421042 command ["comment" ] = comment
10431043 # 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
10461046
10471047 # The command result has to be published for APM unmodified
10481048 # so we make a shallow copy here before adding updatedExisting.
@@ -1082,7 +1082,7 @@ async def _update_retryable(
10821082 write_concern : Optional [WriteConcern ] = None ,
10831083 op_id : Optional [int ] = None ,
10841084 ordered : bool = True ,
1085- bypass_doc_val : Optional [bool ] = False ,
1085+ bypass_doc_val : Optional [bool ] = None ,
10861086 collation : Optional [_CollationIn ] = None ,
10871087 array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
10881088 hint : Optional [_IndexKeyHint ] = None ,
@@ -1128,7 +1128,7 @@ async def replace_one(
11281128 filter : Mapping [str , Any ],
11291129 replacement : Mapping [str , Any ],
11301130 upsert : bool = False ,
1131- bypass_document_validation : bool = False ,
1131+ bypass_document_validation : Optional [ bool ] = None ,
11321132 collation : Optional [_CollationIn ] = None ,
11331133 hint : Optional [_IndexKeyHint ] = None ,
11341134 session : Optional [AsyncClientSession ] = None ,
@@ -1237,7 +1237,7 @@ async def update_one(
12371237 filter : Mapping [str , Any ],
12381238 update : Union [Mapping [str , Any ], _Pipeline ],
12391239 upsert : bool = False ,
1240- bypass_document_validation : bool = False ,
1240+ bypass_document_validation : Optional [ bool ] = None ,
12411241 collation : Optional [_CollationIn ] = None ,
12421242 array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
12431243 hint : Optional [_IndexKeyHint ] = None ,
@@ -2948,6 +2948,7 @@ async def aggregate(
29482948 returning aggregate results using a cursor.
29492949 - `collation` (optional): An instance of
29502950 :class:`~pymongo.collation.Collation`.
2951+ - `bypassDocumentValidation` (bool): If ``True``, allows the write to opt-out of document level validation.
29512952
29522953
29532954 :return: A :class:`~pymongo.asynchronous.command_cursor.AsyncCommandCursor` over the result
0 commit comments