Прочитать коллекцию из mongoDB и выполнить обновление через веб-API - PullRequest
0 голосов
/ 15 апреля 2019

Я должен выполнить CRUD из данных в MongoDB и использовать их с помощью веб-API.Я сделал операции получения и отправки.Но когда я пытаюсь обновить значение, возникает ошибка.

Я получаю идентификатор только через объект и не могу получить все значения из базы данных.Я попробовал почти весь код из сети, но большинство из них не работают.Я написал данные для использования API (не знаю, есть ли в этом ошибка).Так как функция обновления не работает, я не могу проверить работу программы.

Я думаю, что когда действие редактирования работает, только идентификатор передается. Никакое другое значение не передается.Я думаю, что это проблема (не уверен.)Я новичок в MongoDB и веб-API.Я пробовал другие коды в стеке над потоком, но он не работает.Мне нужна помощь, пожалуйста, помогите

Редактировать действие (из контроллера)

 Public Function Edit(ByVal contact As Contact) As Contact
            Dim contactsList = mongoDatabase.GetCollection("contact")
            'Dim getValue = contactsList.Find({})
            'Dim contactsList = mongoDatabase.find
            Dim result As WriteConcernResult
            Dim hasError As Boolean = False
            Dim query As IMongoQuery = Builders.Query.EQ("_id", contact.Id)

            Dim update As IMongoUpdate = Builders.Update.[Set]("Name", contact.Name).[Set]("Address", contact.Address).[Set]("Phone", contact.Phone).[Set]("Email", contact.Email)
            result = contactsList.Update(query, update)
            hasError = result.HasLastErrorMessage
            If Not hasError Then
                Return contact
            Else
                Throw New HttpResponseException(HttpStatusCode.InternalServerError)
            End If
        End Function

Обновить действие

  Public Function update(ByVal Mongodb As MongoDatabase, ByVal mydocument As Object, ByVal contact As Contact) As Contact
            Dim updateemployee As BsonElement = New BsonElement("_id", contact.Id)
            Dim updateemployeedoc As BsonDocument = New BsonDocument()
            updateemployeedoc.Add(updateemployee)
            updateemployeedoc.Add(New BsonElement("_id", contact.Id))
            Dim findemployeeDoc As BsonDocument = New BsonDocument(New BsonElement("_id", contact.Id))
            Dim updateDoc = mydocument.FindOneAndReplace(findemployeeDoc, updateemployeedoc)
            Console.WriteLine(updateDoc)
        End Function

Удалить действие

 Public Function delete(ByVal Mongodb As MongoDatabase, ByVal mydocument As Object, ByVal contact As Contact) As Contact
            Dim findAnotheremployee As BsonDocument = New BsonDocument(New BsonElement("_id", "5caf3b2bc4940b6a4b48e3df"))
            Dim docs = mydocument.FindOneAndDelete(findAnotheremployee)
            Return docs
        End Function

Использование API

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

public ActionResult Edit()
        {
            return View();
        }
        [HttpGet]
        public ActionResult Edit(Contact contact)
        {
            IEnumerable<Contact> contacts = null;
            using (var client = new HttpClient())
            {
                      client.BaseAddress = new Uri("http://localhost:52449/api/mongodb/update");

                var responseTask = client.GetAsync("contact");
                responseTask.Wait();                                            
               var result = responseTask.Result;

                if (result.IsSuccessStatusCode)
                {
                    return View("Edit",contact.Id);
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator.");
                }

            }
                return View(contacts);
        }

Удалить

 [HttpGet]
        public ActionResult Delete(Contact contact)
        {
            IEnumerable<Contact> contacts = null;
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:52449/api/mongodb/delete");

          var postTask = client.PostAsJsonAsync<Contact>("contact", contact);

                postTask.Wait();

                var result = postTask.Result;

                if (result.IsSuccessStatusCode)
                {
                    return View("Edit", contact.Id);
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator.");
                }

            }
            return View(contact);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...