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

268
Vistas
Cómo usar $pull para eliminar datos particulares de un documento en mongoDB

Soy bastante nuevo en MongoDB, quiero eliminar un objeto en particular de una matriz de objetos en un documento. Intenté mucho y encontré muchas preguntas en StackOverflow. Pero ninguna funcionó (tal vez es mi culpa)

el siguiente es un documento de una colección que coincide con el usuario con ID de usuario

 61f15af01a3c53dfa87e38e6

El documento

 { "_id": "61f15af01a3c53dfa87e38ed", "user": "61f15af01a3c53dfa87e38e6", "transactions": [ { "amount": 50, "category": "Bills", "type": "Expense", "_id": "61f15af01a3c53dfa87e38ee" }, { "amount": 100, "category": "Lottery", "type": "Income", "_id": "61f15af01a3c53dfa87e38ef" }, { "amount": 200, "category": "Salary", "type": "Income", "_id": "61f15af01a3c53dfa87e38f0" }, ] }

Quiero eliminar la transacción con un Id de 61f15af01a3c53dfa87e38ef

Probé el siguiente (no sé si es correcto)

 const allTransactions = await Transactions.findOne({ user: req.user._id }); const updatedTransactions = await allTransactions.update( { }, { $pull: { transactions: { id: req.params.id } } }, );

¿Alguien puede detectar el error y cómo puedo lograrlo?

Gracias por adelantado :)

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

0

Puede hacerlo en una llamada a la base de datos usando la siguiente declaración:

 await Transactions.update( { user: "61f15af01a3c53dfa87e38e6" }, { $pull: { "transactions": { _id: "61f15af01a3c53dfa87e38f0" } } } )

Parque infantil Mongo

También asegúrese de que los tipos coincidan. Si _id es de tipo ObjectId en lugar de string , primero debe convertir req.params.id a ObjectId . Vea abajo:

 await Transactions.update( { user: mongoose.Types.ObjectId(req.user._id) }, { $pull: { "transactions": { _id: mongoose.Types.ObjectId(req.params.id) } } } )
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