So starten Sie in 10 Minuten mit MongoDB

MongoDB ist eine umfangreiche dokumentenorientierte NoSQL-Datenbank.

Wenn Sie ein absoluter Anfänger von NoSQL sind, empfehle ich Ihnen, einen kurzen Blick auf meinen zuvor veröffentlichten NoSQL-Artikel zu werfen.

Heute wollte ich einige grundlegende Dinge über MongoDB-Befehle wie Abfragen, Filtern von Daten, Löschen, Aktualisieren usw. mitteilen.

Okay, genug von dem Gespräch, lass uns an die Arbeit gehen!

Aufbau ?

Um mit MongoDB arbeiten zu können, müssen Sie zuerst MongoDB auf Ihrem Computer installieren. Besuchen Sie dazu das offizielle Download-Center und laden Sie die Version für Ihr spezifisches Betriebssystem herunter. Hier habe ich Windows verwendet.

Nach dem Herunterladen des MongoDB-Community-Server-Setups führen Sie einen Installationsprozess nach dem nächsten durch. Wenn Sie fertig sind, wechseln Sie zum Laufwerk C, auf dem Sie MongoDB installiert haben. Gehen Sie zu Programmdateien und wählen Sie das MongoDB-Verzeichnis.

C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin

Im bin-Verzeichnis finden Sie einige interessante ausführbare Dateien.

  • mongod
  • Mongo

Lassen Sie uns über diese beiden Dateien sprechen.

Mongod steht für "Mongo Daemon". Mongod ist ein Hintergrundprozess, der von MongoDB verwendet wird. Der Hauptzweck von mongod ist die Verwaltung aller MongoDB-Serveraufgaben. Akzeptieren von Anforderungen, Antworten auf Clients und Speicherverwaltung.

mongo ist eine Befehlszeilen-Shell, die mit dem Client (z. B. Systemadministratoren und Entwicklern) interagieren kann.

Nun wollen wir sehen, wie wir diesen Server zum Laufen bringen können. Um dies unter Windows zu tun, müssen Sie zuerst einige Verzeichnisse in Ihrem C-Laufwerk erstellen. Öffnen Sie Ihre Eingabeaufforderung in Ihrem C-Laufwerk und gehen Sie wie folgt vor:

C:\> mkdir data/dbC:\> cd dataC:\> mkdir db

Der Zweck dieser Verzeichnisse ist, dass MongoDB einen Ordner zum Speichern aller Daten benötigt. Der Standarddatenverzeichnispfad von MongoDB befindet sich /data/dbauf dem Laufwerk. Daher ist es notwendig, dass wir diese Verzeichnisse so bereitstellen.

Wenn Sie den MongoDB-Server ohne diese Verzeichnisse starten, wird wahrscheinlich der folgende Fehler angezeigt:

Gehen Sie nach dem Erstellen dieser beiden Dateien erneut zu dem Ordner bin, den Sie in Ihrem Mongodb-Verzeichnis haben, und öffnen Sie Ihre Shell darin. Führen Sie den folgenden Befehl aus:

mongod

Voilà! Jetzt ist unser MongoDB-Server betriebsbereit! ?

Um mit diesem Server arbeiten zu können, benötigen wir einen Mediator. Öffnen Sie also ein weiteres Befehlsfenster im Bindungsordner und führen Sie den folgenden Befehl aus:

mongo

Navigieren Sie nach dem Ausführen dieses Befehls zu der Shell, die wir mit dem Befehl mongod (unserem Server) ausgeführt haben. Am Ende wird die Meldung "Verbindung akzeptiert" angezeigt. Das heißt, unsere Installation und Konfiguration ist erfolgreich!

Laufen Sie einfach in der Mongo-Muschel:

db

Umgebungsvariablen einrichten

Um Zeit zu sparen, können Sie Ihre Umgebungsvariablen einrichten. In Windows folgen Sie dazu den folgenden Menüs:

Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit

Kopieren Sie einfach den Pfad unseres Bin-Ordners und klicken Sie auf OK! In meinem Fall ist esC:\Program Files\MongoDB\Server\4.0\bin

Jetzt sind Sie fertig!

Arbeiten mit MongoDB

Es gibt eine Reihe von GUIs (Graphical User Interface) für MongoDB-Server wie MongoDB Compass, Studio 3T usw.

Sie bieten eine grafische Oberfläche, sodass Sie problemlos mit Ihrer Datenbank arbeiten und Abfragen ausführen können, anstatt eine Shell zu verwenden und Abfragen manuell einzugeben.

In diesem Artikel verwenden wir jedoch die Eingabeaufforderung, um unsere Arbeit zu erledigen.

Jetzt ist es Zeit für uns, in MongoDB-Befehle einzutauchen, die Ihnen bei Ihren zukünftigen Projekten helfen.

  1. Öffnen Sie Ihre Eingabeaufforderung und geben Sie ein mongodum den MongoDB-Server zu starten.

2. Öffnen Sie eine andere Shell und geben Sie ein mongoum eine Verbindung zum MongoDB-Datenbankserver herzustellen.

1. Suchen der aktuellen Datenbank, in der Sie sich befinden

db

Dieser Befehl zeigt die aktuelle Datenbank an, in der Sie sich befinden. Dies testist die anfängliche Datenbank, die standardmäßig geliefert wird.

2. Auflisten von Datenbanken

show databases

Ich habe derzeit vier Datenbanken. Sie sind: CrudDB, admin, configund local.

3. Wechseln Sie zu einer bestimmten Datenbank

use 

Hier bin ich in die localDatenbank umgezogen . Sie können dies überprüfen, wenn Sie den Befehl versuchendbum den aktuellen Datenbanknamen auszudrucken.

4. Erstellen einer Datenbank

Mit RDBMS (Relational Database Management Systems) verfügen wir über Datenbanken, Tabellen, Zeilen und Spalten.

But in NoSQL databases, such as MongoDB, data is stored in BSON format (a binary version of JSON). They are stored in structures called “collections”.

In SQL databases, these are similar to Tables.

Alright, let’s talk about how we create a database in the mongo shell.

use 

Wait, we had this command before! Why am I using it again?!

In MongoDB server, if your database is present already, using that command will navigate into your database.

But if the database is not present already, then MongoDB server is going to create the database for you. Then, it will navigate into it.

After creating a new database, running the show database command will not show your newly created database. This is because, until it has any data (documents) in it, it is not going to show in your db list.

5. Creating a Collection

Navigate into your newly created database with the usecommand.

Actually, there are two ways to create a collection. Let’s see both.

One way is to insert data into the collection:

db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})

This is going to create your collection myCollectioneven if the collection does not exist. Then it will insert a document with nameand age. These are non-capped collections.

The second way is shown below:

2.1 Creating a Non-Capped Collection

db.createCollection("myCollection")

2.2 Creating a Capped Collection

db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})

In this way, you’re going to create a collection without inserting data.

A “capped collection” has a maximum document count that prevents overflowing documents.

In this example, I have enabled capping, by setting its value to true.

The size : 2 means a limit of two megabytes, and max: 2 sets the maximum number of documents to two.

Now if you try to insert more than two documents to mySecondCollection and use the find command (which we will talk about soon), you’ll only see the most recently inserted documents. Keep in mind this doesn’t mean that the very first document has been deleted — it is just not showing.

6. Inserting Data

We can insert data to a new collection, or to a collection that has been created before.

There are three methods of inserting data.

  1. insertOne() is used to insert a single document only.
  2. insertMany() is used to insert more than one document.
  3. insert() is used to insert documents as many as you want.

Below are some examples:

  • insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 } )
  • insertMany()
db.myCollection.insertMany([ { "name": "navindu", "age": 22 }, { "name": "kavindu", "age": 20 }, { "name": "john doe", "age": 25, "location": "colombo" } ])

The insert() method is similar to the insertMany() method.

Also, notice we have inserted a new property called locationon the document for John Doe. So if youusefind, then you’ll see only forjohn doe the locationproperty is attached.

This can be an advantage when it comes to NoSQL databases such as MongoDB. It allows for scalability.

7. Querying Data

Here’s how you can query all data from a collection:

db.myCollection.find()

If you want to see this data in a cleaner, way just add .pretty()to the end of it. This will display document in pretty-printed JSON format.

db.myCollection.find().pretty()

Wait...In these examples did you just notice something like _id? How did that get there?

Well, whenever you insert a document, MongoDB automatically adds an _id field which uniquely identifies each document. If you do not want it to display, just simply run the following command

db.myCollection.find({}, _id: 0).pretty()

Next, we’ll look at filtering data.

If you want to display some specific document, you could specify a single detail of the document which you want to be displayed.

db.myCollection.find( { name: "john" } )

Let’s say you want only to display people whose age is less than 25. You can use $lt to filter for this.

db.myCollection.find( { age : {$lt : 25} } )

Similarly, $gt stands for greater than, $lte is “less than or equal to”, $gte is “greater than or equal to” and $ne is “not equal”.

8. Updating documents

Let’s say you want to update someone’s address or age, how you could do it? Well, see the next example:

db.myCollection.update({age : 20}, {$set: {age: 23}})

The first argument is the field of which document you want to update. Here, I specify age for the simplicity. In production environment, you could use something like the _id field.

It is always better to use something like _id to update a unique row. This is because multiple fields can have same age and name. Therefore, if you update a single row, it will affect all rows which have same name and age.

If you update a document this way with a new property, let’s say location for example, the document will be updated with the new attribute. And if you do a find, then the result will be:

If you need to remove a property from a single document, you could do something like this (let’s say you want ageto be gone):

db.myCollection.update({name: "navindu"}, {$unset: age});

9. Removing a document

As I have mentioned earlier, when you update or delete a document, you just need specify the _id not just name, age, location.

db.myCollection.remove({name: "navindu"});

10. Removing a collection

db.myCollection.remove({});

Note, this is not equal to the drop() method. The difference is drop() is used to remove all the documents inside a collection, but the remove() method is used to delete all the documents along with the collection itself.

Logical Operators

MongoDB provides logical operators. The picture below summarizes the different types of logical operators.

Let’s say you want to display people whose age is less than 25, and also whose location is Colombo. What we could do?

We can use the $andoperator!

db.myCollection.find({$and:[{age : {$lt : 25}}, {location: "colombo"}]});

Last but not least, let’s talk aboutaggregation.

Aggregation

A quick reminder on what we learned about aggregation functions in SQL databases:

Simply put, aggregation groups values from multiple documents and summarizes them in some way.

Imagine if we had male and female students in a recordBook collection and we want a total count on each of them. In order to get the sum of males and females, we could use the $group aggregate function.

db.recordBook.aggregate([ { $group : {_id : "$gender", result: {$sum: 1}} } ]);

Wrapping up

So, we have discussed the basics of MongoDB that you might need in the future to build an application. I hope you enjoyed this article – thanks for reading!

If you have any queries regarding this tutorial, feel free to comment out in the comment section below or contact me on Facebook or Twitter or Instagram.

See you guys in the next article! ❤️ ✌?

Link to my previous article: NoSQL