sql >> Databáze >  >> NoSQL >> MongoDB

upsert pole ve vnořeném dokumentu v poli podle indexu v MongoDB

Chcete použít update příkaz ve vaší sbírce takto (příklad):

db.collection.update(
    { "my_array.title" : "title_one" },
    { $inc : { "my_array.$.click_number" : 1 } }
);

Co se právě stalo?

Na prvním parametru update definujete query aby odpovídaly dokumentům, které chcete aktualizovat. Hledáme vlastnost s názvem title uvnitř pole s názvem my_array . Můžete se shodovat s body nebo email samozřejmě úpravou tečkové notace na:"my_array.email" .

Druhý parametr definuje aktualizaci, modifikaci, která se má použít. Máme $inc operátor inkrementovat pole, který používáme v tomto příkazu. query vybere dokument s odpovídajícím prvkem pole. Po této položce shodného pole můžete sáhnout pomocí $ notový zápis. "my_array.$" vybere odpovídající prvek pole, který má title , email a body . Pokud se pokusíte dát hodnotu neexistujícímu poli, MongoDB to udělá za vás. Pokud pole neexistuje, $inc nastaví pole na zadanou částku. $inc operátor přijímá kladné a záporné přírůstkové částky.

Další informace o příkazu update.

Další příklad:

db.collection.update(
    { _id : "john", "my_array.email" : "email" },
    { $inc : { "my_array.$.click_number" : 1 } }
);



  1. Jak se mohu připojit k X509 vložením všech možností do připojovacího řetězce v ovladači node.js pro mongodb?

  2. Jak získat hodnotu z dokumentu MongoDB

  3. mongodb, repliky a chyba:{ $err :not master and slaveOk=false, kód:13435 }

  4. Mongodb nemůže najít objekt s příliš dlouhým _id