Pergunta

Descobri que alguns métodos do uso oficial do driver MongoDB C# SafeMode e retorno SafeModeResult. O que é isto SafeMode E como eu uso isso? Seria ótimo ver alguns casos de uso - por exemplo, um caso de uso com o RemoveAll método de a MongoCollection.

Foi útil?

Solução

O Safemode é relevante apenas ao escrever para o banco de dados.

Para velocidade, se o SafeMode estiver desligado e uma operação de gravação falhar, o driver não espera para se importar. O efeito líquido não é uma exceção é lançada e você não sabe que tem um erro.

O SAFEMODE definido como for forçará o motorista a aguardar uma confirmação de sucesso e, se ocorrer um erro, lançará uma exceção.

Use o Safemode para dados com os quais você se preocupa (contas de usuário, pedidos, etc.).

Não use o Safemode para dados que não são essenciais (registro, estatísticas de uso etc.)

O comportamento padrão do MongoDB é ter o SafeMode Off.

Outras dicas

A partir de documentação:

Existem vários níveis de SafeMode, e essa classe é usada para representar esses níveis. O Safemode se aplica apenas a operações que ainda não retornam um valor (para que não se aplique a consultas ou comandos). Aplica -se aos seguintes métodos de mongocollection: insira, remova, salve e atualize.

A essência do SafeMode é que, após uma inserção, remova, salve ou atualize a mensagem é enviada para o servidor, é seguida por um comando getlasterror para que o driver possa verificar se a operação foi bem -sucedida. Além disso, ao usar conjuntos de réplicas, é possível verificar se as informações foram replicadas para um número mínimo de servidores secundários.

A classe Safemode possui propriedades e métodos estáticos que permitem acessar facilmente modos comuns ou criar seus próprios:

* SafeMode.False
* SafeMode.True
* SafeMode.WaitForReplications(int n)

O valor para "n" inclui o primário; portanto, normalmente você deseja n> = 2.

Espero que isso seja suficiente para entender o objetivo do SafeMode.

SafeMode parece ser obsoleto.

O equivalente é WriteConcern.acknowled sobre MongoClientSettings (normalmente passado para o MongoClient construtor). Reconhecido é o WriteConcern padrão na versão atual do driver (2.2.4).

Veja também MongoDB Safemode Compare com WritEconcern

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top