Start a session with mongoc_client_start_session, use a sessão para uma sequência de operações e transações com vários documentos e, em seguida, libere-a com mongoc_client_session_destroy. Qualquer mongoc_cursor_t ou mongoc_change_stream_t que estiver usando uma sessão deve ser destruído antes da sessão, e uma sessão deve ser destruída antes do mongoc_client_t de origem.
Por padrão, as sessões são causalmente consistentes. Para desabilitar a consistência causal, antes de iniciar uma sessão, crie um mongoc_session_opt_t com mongoc_session_opts_new e chame mongoc_session_opts_set_causal_consistency e, em seguida, libere a estrutura com mongoc_session_opts_destroy.
Escritos não reconhecidos são proibidos com sessões.
Um mongoc_client_session_t deve ser usado por apenas um thread de cada vez. Devido ao pooling de sessões, mongoc_client_start_session pode retornar uma sessão que está inativa há algum tempo e está prestes a ser fechada após seu tempo limite ocioso. Use a sessão dentro de um minuto após comprá-la para atualizá-la e evitar um tempo limite.