Latest web development tutorials

documento MongoDB viene aggiornato

MongoDB usandoupdate () e il metodo save ()per aggiornare la raccolta di documenti. Diamo uno sguardo dettagliato l'applicazione e la differenza tra le due funzioni.


metodo update ()

metodo update () viene utilizzato per aggiornare un documento esistente. La sintassi è la seguente:

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

Descrizione Parametro:

  • query: criteri di query di aggiornamento, in modo simile alla query SQL UPDATE in cui la parte posteriore interna.
  • oggetti di aggiornamento e alcuni degli operatori più recenti (come ad esempio $, $ inc ...), ecc, può essere inteso anche come un arretrato all'interno della query di aggiornamento SQL: aggiornamento
  • upsert: opzionale, che significa questo argomento è che, se non vi è alcun aggiornamento di un record, viene inserito objNew, vero per inserire, il valore predefinito è falso, non è inserito.
  • a più: Opzionale, default MongoDB è falso, solo per trovare il primo record da aggiornare, se questo argomento è vero, in base alle condizioni di mettere fuori molti record Controllare tutti gli aggiornamenti.
  • writeConcern: eccezione livello opzionale è gettato.

Esempi

Inseriamo il seguente raccolta dei dati col:

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

Poi dobbiamo aggiornare il titolo con il metodo update () (titolo):

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

È possibile visualizzare il titolo (titolo) dalla Aggiornamento originale "MongoDB Tutorial" a "MongoDB."

La dichiarazione di cui sopra sarà modificare il documento trovato nel primo, se si desidera modificare lo stesso documento e di più, è necessario impostare Multi parametro su true.

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

salvare il metodo ()

salvare il metodo () passando documenti per sostituire il documento esistente. La sintassi è la seguente:

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

Descrizione Parametro:

  • documento: i dati del documento.
  • writeConcern: eccezione livello opzionale è gettato.

Esempi

L'esempio seguente abbiamo sostituito il _id come dati 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
})

Dopo la sostituzione è successo, possiamo () comando per visualizzare i dati dopo la sostituzione dal ritrovamento

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

Altri esempi

aggiornare solo il primo record:

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

Aggiorna tutto:

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

Aggiungere solo il primo:

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

Aggiungere tutti ha aggiunto:

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

Aggiorna tutto:

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

aggiornare solo il primo record:

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