Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
Operación de actualización en mongoDb y asp.net core

Soy nuevo en mongoDb y trato de hacer una operación CRUD usando mongoDb y Asp.net Core web api. Mi problema es que todo el objeto al tiempo se actualiza. Quiero actualizar campos específicos que envío en web api.

Ejemplo :

 BusinessUnit oBU = new BusinessUnit(){ Id = "586e262268d90b290001b46e", Name = "BU_Name", Address = "my_Add" };

Ahora quiero actualizar solo la dirección a "my_New_add" y quiero hacer el siguiente objeto:

 BusinessUnit oBU = new BusinessUnit(){ Id = "586e262268d90b290001b46e", Name = "BU_Name", Address = "my_New_Add" };

Llamada API: http://localhost:88786/api/BusinessUnit/586e262268d90b290001b46e

cuerpo: {"Id": "586e262268d90b290001b46e", "Dirección": "my_New_add"}

Pero todo el tiempo actualiza el objeto completo. ¿Cómo puedo resolverlo?

A continuación se muestra mi código:

Código del controlador:

 [HttpPut("{id}")] public void Put(string id, [FromBody]BusinessUnit businessUnit) { _businessUnitRepository.UpdateBusinessUnit(id, businessUnit); }

Código de repositorio:

 public async Task<ReplaceOneResult> UpdateBusinessUnit(string id, BusinessUnit businessUnit) { return await _context.BusinessUnits.ReplaceOneAsync(doc => doc.Id == id, businessUnit); }

En realidad, quiero hacer la siguiente consulta (sé que mongodb es noSql, pero para aclarar mi pregunta, escribo debajo de la consulta sql)

ACTUALIZAR BusinessUnit Set Address = "my_New_add" DONDE Id = "586e262268d90b290001b46e"

Gracias por adelantado.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

BuscarUnoYReemplazar

Un solo documento se puede reemplazar atómicamente usando los métodos FindOneAndReplace o FindOneAndReplaceAsync .

 var filter = new BsonDocument("FirstName", "Jack"); var update = Builders<BsonDocument>.Update.Set("FirstName", "John"); var result = collection.FindOneAndUpdate(filter, update); if (result != null) { Assert(result["FirstName"] == "Jack"); }

Lo anterior encontrará un documento donde FirstName es Jack y establecerá su campo FirstName en John. Luego devolverá el documento que fue reemplazado.

Por favor vea la documentación aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Utilice este método:

 public ToDoItem Update(ToDoItem toDoItem) { yourCollection.ReplaceOne(item => item.Id == toDoItem.Id, toDoItem); return toDoItem; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda