MongoDB – najważniejsze polecenia CRUD

Popularność baz NoSQL w ostatnim czasie wzrosła. Jedną z najbardziej popularnych i coraz częściej stosowanych jest baza MongoDB. Rozpoczynając pracę z każdą z baz NoSQL trzeba nie tylko zmienić sposób myślenia o bazach danych, lecz również nauczyć się innych reguł i zasad formułowania zapytań dla operacji CRUD (ang. create, read, update and delete), czyli tworzenia, odczytywania, aktualizacji i usuwania danych. Poniżej przedstawię kilka najważniejszych poleceń. Więcej o operacjach CRUD można znaleźć w oficjalnej dokumentacji MongoDB

Środowisko do testów bazy MongoDB

W szybki i prosty sposób można zestawić środowisko do testów operacji CRUD na bazie MongoDB przy użyciu Docker’a, w którym trzeba znaleźć i pobrać obraz mongo, a następnie uruchomić go i podłączyć się klientem mongo, co przedstawiono na 3 zrzutach ekranu.

Lista baz danych i kolekcji

> show dbs
local 0.000GB
test 0.000GB

> use test
switched to db test

> show collections
test

Dodawanie dokumentu do kolekcji

> db.test.insert({club_name: "Manchester United", num_players:27, budget:1500000})
WriteResult({ "nInserted" : 1 })

> db.test.insert({club_name: "Tottenham", num_players:25, budget:1200000})
WriteResult({ "nInserted" : 1 })

Wyszukiwanie dokumentów

> db.test.find()
{ "_id" : ObjectId("57af8abcf37fc4ad42306039"), "club_name" : "Manchester United", "num_players" : 27, "budget" : 1500000 }
{ "_id" : ObjectId("57af8ad2f37fc4ad4230603a"), "club_name" : "Tottenham", "num_players" : 25, "budget" : 1200000 }

> db.test.find().pretty()
{
"_id" : ObjectId("57af8abcf37fc4ad42306039"),
"club_name" : "Manchester United",
"num_players" : 27,
"budget" : 1500000
}
{
"_id" : ObjectId("57af8ad2f37fc4ad4230603a"),
"club_name" : "Tottenham",
"num_players" : 25,
"budget" : 1200000
}

Złożone operacje wyszukiwania danych z dodatkowymi kryteriami oraz projekcją

> db.test.find({budget: {$gt:1300000}})
{ "_id" : ObjectId("57af8abcf37fc4ad42306039"), "club_name" : "Manchester United", "num_players" : 27, "budget" : 1500000 }

> db.test.find({budget: {$gt:1300000}}, {club_name: 1})
{ "_id" : ObjectId("57af8abcf37fc4ad42306039"), "club_name" : "Manchester United" }

> db.test.find({budget: {$gt:1300000}}, {club_name: 1}).limit(1)
{ "_id" : ObjectId("57af8abcf37fc4ad42306039"), "club_name" : "Manchester United" }

Aktualizacja dokumentów

> db.test.update(
... {budget: {$gt:100000}},
... {$set: {league: "Premier League"}},
... {multi: true}
... )
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 1 })

> db.test.find({}).pretty()
{
"_id" : ObjectId("57af8abcf37fc4ad42306039"),
"club_name" : "Manchester United",
"num_players" : 27,
"budget" : 1500000,
"league" : "Premier League"
}
{
"_id" : ObjectId("57af8ad2f37fc4ad4230603a"),
"club_name" : "Tottenham",
"num_players" : 25,
"budget" : 1200000,
"league" : "Premier League"
}

Usuwanie dokumentów

> db.test.remove({num_players: 25})
WriteResult({ "nRemoved" : 1 })

> db.test.find({}).pretty()
{
"_id" : ObjectId("57af8abcf37fc4ad42306039"),
"club_name" : "Manchester United",
"num_players" : 27,
"budget" : 1500000,
"league" : "Premier League"
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.