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

Jak aktualizovat existující dokumenty v MongoDB

MongoDB byl poprvé vyvinut v roce 2007 Dwightem Merrimanem a Eliotem Horowitzem, když měli problémy se škálovatelností u relačních databází při vývoji podnikových webových aplikací v jejich společnosti, známé jako DoubleClick. Podle jednoho z vývojářů byl jeho název odvozen od slova humongous na podporu myšlenky zpracování velkého množství dat.

Databáze se stala open-source projektem v roce 2009, zatímco společnost nabízela služby komerční podpory. Mnoho společností přijalo MongoDB kvůli jeho jedinečným funkcím. Jednou z těchto společností byly noviny The New York Times a pomocí této databáze vytvořily webovou aplikaci pro odesílání fotografií. V roce 2013 se společnost DoubleClick oficiálně přejmenovala na MongoDB Inc.

Komponenty MongoDB

Mezi základní komponenty MongoDB a jejich použití patří:

  • Sbírky – Jejich protějšky RDBMS jsou tabulky. Jedná se o sadu dokumentů MongoDB
  • Dokument – Jeho protějškem RDBMS je Row. Jedná se o kolekci dat uložených ve formátu BSON
  • Pole – Toto je jeden prvek v dokumentu MongoDB, který obsahuje hodnoty jako pole a dvojice hodnot.

Úložiště založené na dokumentech

Dokument je datová struktura s páry název-hodnota, jako je JSON, a je snadné mapovat jakýkoli vlastní objekt libovolného programovacího jazyka s dokumentem MongoDB. Například Student objekt má atributy jako name, studentid, a předměty kde předměty jsou seznam. Dokument pro studenty v MongoDB bude vypadat takto:

{
Name: "Michael",
Studentid: 1
Subjects: ["Mathematics, English, Geography"]}

Všimnete si, že dokumenty jsou reprezentace JSON vlastních objektů z výše uvedené reprezentace. Ukládáním dat ve formě polí a dokumentů (Embedded) do dokumentu se také vyhnete nadměrnému počtu JOINS.

Aktualizace dokumentů v MongoDB

MongoDB poskytuje aktualizaci () příkaz používaný k aktualizaci dokumentů kolekce. Základní parametry v příkazu jsou podmínkou, pro kterou je třeba dokument aktualizovat a úpravou, kterou je třeba provést. Uživatel může do výpisu aktualizace přidat kritéria pro aktualizaci pouze vybraných dokumentů. Níže uvedený příklad ukazuje, jak se provádí aktualizace jedné hodnoty v dokumentu:

  • Zadejte updateOne příkaz.
  • Vyberte podmínku, která se použije k rozhodnutí, který dokument bude aktualizován. Například aktualizujeme dokument s autorem a článkem.
  • Použijte sada příkaz k úpravě názvu pole, vyberte název pole, který chcete změnit, a poté zadejte novou hodnotu, jak je uvedeno níže:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)

Výstup:

Poznámka: ujistěte se, že jste vybrali správnou databázi pomocí příkazu „use“. Například používám „fossdb“; proto, abych zvolil správnou databázi, provedu níže uvedený příkaz:

use fossdb

Výstup:

Výstup ukáže, že jeden záznam odpovídal podmínce, a proto je hodnota příslušného pole v dokumentu upravena.

Chcete-li aktualizovat hromadné dokumenty současně v MongoDB, uživatel bude muset použít více možností, protože ve výchozím nastavení je vždy upravován pouze jeden dokument. Níže uvedený kód ukazuje, jak může uživatel aktualizovat mnoho dokumentů současně:

  • Nejprve najdeme dokument, jehož autor je „Abraham“ a změníme jméno autora z „Abraham“ na „Masai“. Poté vydáme updateMany příkaz.
  • Poté vyberte podmínku, abyste rozhodli, který dokument se má upravit. Jak již bylo zmíněno dříve, použijeme dokument se jménem „Autor“.
  • Vyberte názvy polí, která chcete aktualizovat, a poté odpovídajícím způsobem zadejte jejich nové hodnoty.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)

Výstup:

Po úspěšném spuštění tohoto příkazu výstup ukazuje, že jeden záznam odpovídal podmínce, a proto bylo příslušné pole upraveno.

Proč by se uživatelé měli rozhodnout pro MongoDB

Níže jsou uvedeny důvody, proč by uživatelé měli začít používat MongoDB:

Orientované na dokumenty

Vzhledem k tomu, že tato databáze je databází typu NoSQL, jsou data uložena v dokumentech namísto toho, aby měla data ve formátu relačního typu. Díky tomu je tato databáze velmi flexibilní a přizpůsobitelná skutečným situacím a požadavkům.

Ad hoc dotazy

V MongoDB je podporováno vyhledávání podle polí, dotazů a regulárních výrazů; lze tedy provádět dotazy, aby se v dokumentech vrátila konkrétní pole.

Indexování

Indexy v MongoDB jsou vytvářeny za účelem zlepšení výkonu vyhledávání v databázi.

Vyrovnávání zátěže

MongoDB používá sharding k horizontálnímu škálování rozdělením dat mezi více instancí MongoDB.

Replikace

Tato databáze poskytuje vysokou dostupnost se sadami replik. Každá sada replik se skládá ze dvou nebo více instancí MongoDB. Člen sady replik může kdykoli vystupovat v roli primární nebo sekundární repliky. Primární replika je centrální server, který komunikuje s klientem a provádí všechny operace čtení/zápisu. Naproti tomu sekundární replika uchovává kopii primární repliky pomocí vestavěných dat replikace.

Datové modelování v MongoDB

Z výše uvedené diskuse vyplývá, že data v Mongo DB mají flexibilní schéma. Kolekce MongoDB nevynucují strukturu dokumentů, na rozdíl od databází SQL, kde uživatel musí před vložením dat deklarovat schéma tabulky. Tento druh flexibility je to, co dělá MongoDB tak výkonným.

Při modelování dat v MongoDB by uživatelé měli mít na paměti následující věci:

  • Vzory získávání dat – v případě intenzivního využívání dotazů by uživatelé měli zvážit použití indexů ve svých datových modelech ke zlepšení efektivity dotazů.
  • Potřeby aplikace – uživatel by se měl podívat na obchodní potřeby aplikace a zjistit, jaká data a typ dat aplikace potřebuje.
  • Upravuje se databáze často? – uživatelé budou muset přehodnotit použití indexů nebo v případě potřeby začlenit sharding do návrhu datového modelování, aby zlepšili efektivitu svého celkového prostředí MongoDB.

Závěr

Tento článek poskytuje stručnou analýzu MongoDB, virové databáze na dnešním trhu. Kromě toho vysvětlil, jak aktualizovat existující dokumenty v MongoDB. Doufáme, že vám tento článek pomůže lépe porozumět MongoDB. V případě jakéhokoli problému nás kontaktujte prostřednictvím sekce komentářů a my se vám obratem ozveme.


  1. Shell MongoDB a server se neshodují

  2. Jak zkontrolovat, zda je index skrytý v MongoDB

  3. Vytvoření otevřeného standardu:Řízení strojového učení pomocí Apache Atlas

  4. Režimy importu mongoimportu