Tutoriel MongoD...login
Tutoriel MongoDB
auteur:php.cn  temps de mise à jour:2022-04-21 17:49:03

Documentation de mise à jour de MongoDB


MongoDB utilise les méthodes update() et save() pour mettre à jour les documents d'une collection. Examinons ensuite en détail les applications des deux fonctions et leurs différences.


Méthode update()

La méthode update() est utilisée pour mettre à jour un document existant. Le format de syntaxe est le suivant :

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

Description du paramètre :

  • query  : conditions de requête de mise à jour, similaires à SQL mettre à jour la requête derrière où.

  • update  : l'objet de mise à jour et certains opérateurs de mise à jour (tels que $, $inc...), etc., peuvent également être compris comme définis dans SQL update query Le

  • upsert suivant : facultatif, ce paramètre signifie s'il faut insérer objNew s'il n'y a pas d'enregistrement de mise à jour, true signifie insérer et la valeur par défaut est false Not. inséré.

  • multi : Facultatif, mongodb est par défaut false et ne met à jour que le premier enregistrement trouvé. Si ce paramètre est vrai, plusieurs conditions seront trouvées. mis à jour.

  • writeConcern  : Facultatif, le niveau auquel l'exception est levée.

Instance

Nous insérons les données suivantes dans la collection col :

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

Ensuite nous mettons à jour le titre (title) via la méthode update() :

>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" : "php中文网",
        "url" : "http://www.php.cn",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

Vous pouvez voir que le titre a été mis à jour de "MongoDB Tutorial" à "MongoDB".

L'instruction ci-dessus ne modifiera que le premier document découvert. Si vous souhaitez modifier plusieurs documents identiques, vous devez définir le paramètre multi sur true.

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

méthode save()

la méthode save() remplace le document existant par le document entrant. Le format de syntaxe est le suivant :

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

Description du paramètre :

  • document  : données du document.

  • writeConcern  : Facultatif, le niveau auquel l'exception est levée.

Instance

Dans l'exemple suivant, nous avons remplacé les données du document par _id 56064f89ade2f21f36b03136 :

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

Une fois le remplacement réussi, nous pouvons utiliser find () Commande pour afficher les données remplacées

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

Plus d'instances

Mettre à jour uniquement le premier enregistrement :

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

Tout mettre à jour :

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

Ajoutez uniquement la première barre :

db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 🎜>
Ajoutez-les tous :

db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : " OK"} },true,true );
Toutes les mises à jour :

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

Mettre à jour uniquement le premier enregistrement :

db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} } , faux,faux );