Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

erro

ola faltou alguma parte aqui na aula o metodo

 private void CriarOuAtualizarSchemaDaColecao()
        {
            var db = _contexto.Database;
            var nomeColecao = "noticias";
            var schema = GetMongoJsonSchema();

            var colecoes = db.ListCollectionNames().ToList();
            
            if (!colecoes.Contains(nomeColecao))
            {
                // Cria a coleção com o schema, se ainda não existir
                var options = new CreateCollectionOptions<BsonDocument>
                {
                    Validator = new BsonDocumentFilterDefinition<BsonDocument>(schema),
                    ValidationAction = DocumentValidationAction.Error,
                    ValidationLevel = DocumentValidationLevel.Strict
                };
                db.CreateCollection(nomeColecao, options);
            }
            else
            {
                // Atualiza a validação da coleção existente usando collMod
                var command = new BsonDocument
                {
                    { "collMod", nomeColecao },
                    { "validator", schema },
                    { "validationLevel", "strict" },
                    { "validationAction", "error" }
                };
                db.RunCommand<BsonDocument>(command);
            }
        }

esta dando erro no ( var db = _contexto.Database; )

falta a variavel ou metodo que faz referencia a esse Database na classe MongoContext... Ai nao consigo acompanhar as aulas

using MongoDB.Driver;
using MongoDB.Bson;

namespace CursoMongoDB.Contexts
{
    public class MongoContext
    {
        public readonly IMongoDatabase _database;

// Construtor recebe a connection string e o nome do banco
        public MongoContext(string connectionString, string dbName)
        {
            var client = new MongoClient(connectionString);
            _database = client.GetDatabase(dbName);
        }

    // Expondo a coleção de notícias já pronta para uso
        public IMongoCollection<BsonDocument> Noticias =>
            _database.GetCollection<BsonDocument>("noticias");
    }
}
1 resposta

Olá Ulysses.
Pelo código que você compartilhou, o problema realmente parece estar relacionado ao fato de que a classe MongoContext não expõe uma propriedade chamada Database.
No método apresentado na aula, temos:

var db = _contexto.Database;

Porém, na sua implementação da classe MongoContext, existe apenas o campo:

public readonly IMongoDatabase _database;

e a propriedade:

public IMongoCollection<BsonDocument> Noticias =>
    _database.GetCollection<BsonDocument>("noticias");

Ou seja, não existe uma propriedade pública chamada Database, o que explica o erro.
Uma possível solução seria expor o banco de dados através de uma propriedade:

public IMongoDatabase Database => _database;

Assim sua classe ficaria compatível com o código da aula e a instrução:

var db = _contexto.Database;

passaria a funcionar normalmente.
Outra possibilidade é que tenha ocorrido alguma atualização no material do curso ou que um trecho da implementação da classe MongoContext não tenha sido mostrado durante a aula.
Você fez uma análise muito boa ao identificar exatamente onde a referência estava faltando.
Esse tipo de investigação é uma habilidade fundamental no desenvolvimento de software, principalmente quando trabalhamos com tutoriais, documentações ou projetos que sofreram alterações ao longo do tempo.
Faça os testes e me de um feedback.
Bons estudos.