@@ -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