Latest web development tutorials

le document MongoDB est mis à jour

MongoDB parupdate () et méthode save ()pour mettre à jour la collection de documents. Jetons un regard détaillé sur l'application et la différence entre les deux fonctions.


méthode de mise à jour ()

méthode update () est utilisée pour mettre à jour un document existant. La syntaxe est la suivante:

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

Description Paramètre:

  • requête: mise à jour des critères de requête, similaire à la mise à jour requête sql où l'arrière intérieure.
  • objets de mise à jour et certains des nouveaux opérateurs (tels que $, $ inc ...), etc., peuvent également être compris comme un ensemble de retour dans la mise à jour requête sql: mise à jour
  • upsert: en option, ce qui signifie cet argument est que s'il n'y a aucune mise à jour d'enregistrement, est inséré objNew, fidèle à insérer, la valeur par défaut est faux, pas inséré.
  • multiples: en option, mongodb défaut est false, seulement pour trouver le premier enregistrement à mettre à jour, si cet argument est vrai, selon les conditions posées à de nombreux enregistrements vérifier toutes les mises à jour.
  • writeConcern: exception de niveau en option est levée.

Exemples

Nous insérons la collecte des données col suivantes:

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

Ensuite, nous devons mettre à jour le titre par la méthode update () (titre):

>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
}
>

Vous pouvez voir le titre (titre) à partir de la mise à jour d'origine "Tutoriel MongoDB" à "MongoDB."

La déclaration ci-dessus va modifier le document trouvé dans le premier, si vous souhaitez modifier le même document et plus, vous devez régler le paramètre multidirectionnel vrai.

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

méthode save ()

méthode save () en passant des documents pour remplacer le document existant. La syntaxe est la suivante:

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

Description Paramètre:

  • document: les données du document.
  • writeConcern: exception de niveau en option est levée.

Exemples

L'exemple suivant nous avons remplacé le _id comme 56064f89ade2f21f36b03136 les données du document:

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

Après le remplacement est réussie, nous pouvons () commande pour afficher les données après le remplacement par 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
}
> 

D'autres exemples

Seulement mettre à jour le premier enregistrement:

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

Mettre à jour tous:

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

Ajoutez seulement la première:

db.col.update ({ "count": {$ gt: 4}}, {$ fixé: { "test5": "OK"}}, vrai, faux);

Ajouter tous ajouté:

db.col.update ({ "count": {$ gt: 5}}, {$ fixé: { "test5": "OK"}}, true, true);

Mettre à jour tous:

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

Seulement mettre à jour le premier enregistrement:

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