Как сохранить новый документ в mongodb с помощью asp.net mvc?

Я действительно пытаюсь сделать это, так как я начал работать с Mongo db, но не могу найти ответ и как этого достичь, я думаю, что я близок к пониманию этого, но нужна небольшая помощь; поэтому у меня есть такая модель :

public class UserInformationViewModel
{
    [DisplayName("Nom")]
    public string NomUser { get; set; }

    [DisplayName("Prénom")]
    public string PrenomUser { get; set; }

    [DisplayName("Entreprise")]
    public string EntrepriseUser { get; set; }

    [DisplayName("Email")]
    public string EmailUser { get; set; }

    [DisplayName("Téléphone")]
    public string TelephoneUser { get; set; }
}

Что я показываю как это в модальном :

<div id ="test" class="form-panel-modify">
    <div class="form-horizontal style-form">
        <div class="form-group">
            @Html.LabelFor(m => m.UserInformationViewModel.NomUser, new { @class = "col-sm-d col-sm-3 control-label" })
            <div class="col-sm-8">
                @Html.TextBoxFor(m => m.UserInformationViewModel.NomUser, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.UserInformationViewModel.PrenomUser, new { @class = "col-sm-d col-sm-3 control-label" })
            <div class="col-sm-8">
                @Html.TextBoxFor(m => m.UserInformationViewModel.PrenomUser, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.UserInformationViewModel.EntrepriseUser, new { @class = "col-sm-d col-sm-3 control-label" })
            <div class="col-sm-8">
                @Html.TextBoxFor(m => m.UserInformationViewModel.EntrepriseUser, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.UserInformationViewModel.EmailUser, new { @class = "col-sm-d col-sm-3 control-label" })
            <div class="col-sm-8">
                @Html.TextBoxFor(m => m.UserInformationViewModel.EmailUser, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.UserInformationViewModel.TelephoneUser, new { @class = "col-sm-d col-sm-3 control-label" })
            <div class="col-sm-8">
                @Html.TextBoxFor(m => m.UserInformationViewModel.TelephoneUser, new { @class = "form-control" })
            </div>
        </div>
    </div>
</div>

модальное :

            <div class="modal-content" style="height:600px;width:600px;text-align:center">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Informations</h4>
                    <p>Fill the form</p>
                </div>
                @Html.Partial("_ModalContent")
            </div>

Поэтому я хочу взять другую информацию в форме и сохранить их в качестве документа в моей базе данных mongo, но я не могу понять, как это сделать .. все, что я нахожу в интернете, кажется устаревшим или не отвечает на мой вопрос. А также, читая doc на сайте mongo, я не могу этого достичь, поэтому, если кто-то может помочь.

Было бы здорово ! Большое спасибо, надеюсь, я ясно.

РЕДАКТИРОВАТЬ :

public class ConnectionHandler<T> where T : IMongoEntity
{
    public MongoCollection<T> MongoCollection { get; private set; }

    public ConnectionHandler()
    {
        var connectionString = "mongodb://IPADRESS";

        //// Acceder à la chaine de connection
        var mongoClient = new MongoClient(connectionString);

        //// Acceder au serveur
        var mongoServer = mongoClient.GetServer();

        //// Acceder à la BD 
        const string databaseName = "BD NAME";
        var db = mongoServer.GetDatabase(databaseName);
        //// Acceder aux collection la BD (tables en langage relationnel...)
        //// NB: le nom des collections est mis en minuscule et pluralisé
        MongoCollection = db.GetCollection<T>(typeof(T).Name);
    }
}

1 ответ

  1. Документ будет вашей моделью. Таким образом, вам нужно использовать драйвер mongodb для доступа к коллекции для вашей модели:

    var usersCollection = db.GetCollection<UserInformationViewModel>("UserInformationCollection");
    

    И с этим Вы можете использовать операции MongoDB для коллекции, например Insert:

    public async Task Create(UserInformationViewModel user, CancellationToken token)
    {
        await usersCollection.InsertOneAsync(user, cancellationToken: token).ConfigureAwait(false);
    }