Latest web development tutorials

MongoDB documento se actualiza

MongoDB usandoupdate () y el método save ()para actualizar la colección de documentos. Vamos a echar un vistazo detallado a la aplicación y la diferencia entre las dos funciones.


método update ()

método de actualización () se utiliza para actualizar un documento existente. Sintaxis es la siguiente:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

Descripción de parámetros:

  • consulta: criterios de consulta de actualización, similar a la actualización de consulta SQL en la parte trasera interior.
  • actualizar objetos y algunos de los nuevos operadores (por ejemplo, $, $ inc ...), etc., también puede ser entendida como un conjunto de vuelta dentro de la actualización de consultas SQL: actualización
  • upsert: opcional, es decir, este argumento es que si no hay una actualización de registro, se inserta objNew, fiel a insertar, el valor predeterminado es falso, no se ha insertado.
  • múltiples: Opcional, por defecto mongodb es falso, sólo para encontrar el primer registro para actualizar, si este argumento es cierto, de acuerdo con las condiciones puestas a cabo muchos registros presentarán todas las actualizaciones.
  • writeConcern: excepción de nivel opcional es lanzada.

Ejemplos

Insertamos la siguiente col recolección de datos:

>db.col.insert({
    title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '本教程',
    url: 'http://www.w3big.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

Entonces tenemos que actualizar el título por el método de actualización () (título):

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "本教程",
        "url" : "http://www.w3big.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

Se puede ver el título (título) de la original actualización "MongoDB Tutorial" para "MongoDB."

La declaración anterior se modificará el documento encontrado en la primera, si desea editar el mismo documento y más, es necesario configurar múltiples parámetros a true.

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

guardar método ()

guardar método () pasando documentos para reemplazar el documento existente. Sintaxis es la siguiente:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

Descripción de parámetros:

  • documento: los datos del documento.
  • writeConcern: excepción de nivel opcional es lanzada.

Ejemplos

El siguiente ejemplo sustituimos _ID como datos 56064f89ade2f21f36b03136 documento:

>db.col.save({
	"_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "w3big",
    "url" : "http://www.w3big.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})

Después de la sustitución se realiza correctamente, podemos () del sistema para ver los datos después de la sustitución por find

>db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "w3big",
        "url" : "http://www.w3big.com",
        "tags" : [
                "mongodb",
                "NoSQL"
        ],
        "likes" : 110
}
> 

más ejemplos

Sólo actualizar el primer registro:

db.col.update ({ "contar": {$ gt: 1}}, {$ set: { "test2": "OK"}});

Actualizar todo:

db.col.update ({ "contar": {$ gt: 3}}, {$ set: { "test2": "OK"}}, false, true);

Añadir sólo la primera:

db.col.update ({ "contar": {$ gt: 4}}, {$ set: { "test5": "OK"}}, verdadero, falso);

Añadir todos Añadido:

db.col.update ({ "contar": {$ gt: 5}}, {$ set: { "test5": "OK"}}, true, true);

Actualizar todo:

db.col.update ({ "contar": {$ gt: 15}}, {$ inc: { "recuento": 1}}, false, true);

Sólo actualizar el primer registro:

db.col.update ({ "contar": {$ gt: 10}}, {$ inc: { "recuento": 1}}, false, false);