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

723
Vistas
Error: el documento de la operación de actualización debe contener operadores atómicos al ejecutar updateOne

En mi colección, sólo hay un documento.

 > db.c20160712.find() { "_id" : ObjectId("57ab909791c3b3a393e9e277"), "Dimension_id" : 2, "Attribute" : "good", "Hour" : "20160712_06", "Frequency_count" : 100

Quiero ejecutar updateOne para reemplazar el documento por otro. Pero, ¿por qué hay un Error: the update operation document must contain atomic operators ?

 > db.c20160712.updateOne( { "Attribute" : "good"}, {"Type" : "DVD", "Title" : "Matrix, The", "Released" : 1999, "Genre" : "Action"}, { upsert: true} ) 2016-08-10T16:37:57.089-0400 E QUERY [thread1] Error: the update operation document must contain atomic operators : DBCollection.prototype.updateOne@src/mongo/shell/crud_api.js:493:1 @(shell):1:1

El segundo y tercer argumento en el comando anterior provienen de un ejemplo en The Definitive Guide to MongoDB: A complete guide to going with Big Data... Por Eelco Plugge, David Hows, Peter Membrey, Tim Hawkins

Mi MongoDB es 3.2.

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

0

Sintaxis incorrecta para el segundo parámetro. Por favor, consulte los documentos . Debería ser:

 db.c20160712.updateOne( { "Attribute" : "good" }, { $set: {"Type" : "DVD", "Title" : "Matrix, The", "Released" : 1999, "Genre" : "Action" } }, { upsert: true } );
over 4 years ago · Santiago Trujillo Denunciar

0

Creo que esto se cambió como un efecto secundario de la introducción del método updateOne() además de update() y updateMany() como una especie de protección para evitar que los usuarios anulen accidentalmente un documento completo.

Puede usar el método replaceOne() en su lugar, o una update() sin especificar multi:true .

over 4 years ago · Santiago Trujillo Denunciar

0

Debería usar este código porque también estaba enfrentando el mismo problema y luego usé este código:

 updateOne( { _id: new ObjectID(req.params.id) }, { $set: { title: req.body.bookName, author: req.body.authorName } }, { upsert: true } )

y también debe definir ObjectID de lo contrario, el problema volverá a ocurrir.

 const ObjectID = require('mongodb').ObjectID;
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