Heim  >  Artikel  >  Datenbank  >  Detaillierte Einführung in die allgemeinen Vorgänge von MongoDB

Detaillierte Einführung in die allgemeinen Vorgänge von MongoDB

零下一度
零下一度Original
2017-07-03 16:40:451184Durchsuche

MongoDB ist in der Sprache C++ geschrieben und ein Open-Source-Datenbanksystem, das auf verteilter Dateispeicherung basiert. Unter Hochlastbedingungen kann das Hinzufügen weiterer Knoten die Serverleistung sicherstellen. MongoDB zielt darauf ab, skalierbare, leistungsstarke Datenspeicherlösungen für WEB-Anwendungen bereitzustellen.

1. Hinzufügen, löschen, ändern und überprüfen

Alle Sammlungen in der aktuellen Datenbank anzeigen, verwenden Sie den Befehl

show collections 或使用
show tables

Es gibt zwei Möglichkeiten zum Erstellen einer Sammlung, Anzeigen Erstellen und implizites Erstellen


显示创建可以使用命令 db.createCollection(“集合名称")
隐式创建可以使用命令 db.集合名称.insert({}),
指创建集合并同时向集合中插入数据,
例如:db.customer.insert({name:”jack”})

Ein Dokument zu einer Sammlung hinzufügen

Verwenden Sie den Befehl db.collectionname.insert({} ), zum Beispiel:

db.user1.insert({name:”jack”,age:20})

Dokumente in der Sammlung löschen


使用命令 db.集合名称.remove({删除条件}),
不加删除条件为删除集合中的所有文档:
例如,删除c1集合中的所有文档 db.c1.remove() 
删除c1集合中name为user1的文档 db.c1.remove({name:”user1”})

Fragen Sie die Sammlungsdokumente in


db.集合名称.find({条件})
或者使用 
db.集合名称.findOne() 查询第一个文档

ab, fragen Sie die Dokumente in der Sammlung ab und geben Sie einige spezifische Schlüsselwerte zurück
Zusätzlich zum Abfrage--Ausdruck unterstützt MongoDB auch einige zusätzliche Parameteroptionen.
Wenn Sie nur bestimmte Feldwerte zurückgeben möchten:
Alle Felder außer dem Altersfeld zurückgeben
db.user.find({},{age:0});

Alle zurückgeben Spalten mit Tags=Tennis außer Kommentaren
db.posts.find({tags:'tennis'},{comments:0});

Gibt das Namensfeld mit Benutzer-ID=16 zurück
db. user.find({userid:16},{name:1});
{"_id":16,"name":user16"}

Alle z von x=john Field zurückgeben
db.things.find({x:"john"},{z:1});

Fragen Sie Dokumente in der Sammlung mithilfe von bedingten Ausdrücken ab (03644ed2c078467c36954b2c303f4b78 Wert
db.collection.find({field:{$gt:value}});

//Kleiner als: field 8b00c01a3574f188f2c54ffcc0c4f0c5= value
db.collection .find ({field:{$gte:value}});

//Kleiner oder gleich: Feld <= Wert
db.collection.find({field:{$lte: value}});

//Ungleich: field != value
db.collection.find({field:{$ne:value}});

Dokumente abfragen in der Sammlung, Statistiken (Anzahl), Sortieren (Sortieren), Paging (Überspringen, Begrenzen)


db.customer.count();
db.customer.find().count();
db.customer.find({age:{$lt:5}}).count();
db.customer.find().sort({age:1}); 降序-1
db.customer.find().skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3).count();
db.customer.find().sort({age:-1}).skip(2).limit(3).count(0);
db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);

Fragen Sie die Dokumente in der Sammlung ab
$all wird hauptsächlich zum Abfragen der Array-Einschlussbeziehung in
verwendet. Solange eine der Abfragebedingungen nicht enthalten ist, wird

$in nicht zurückgegeben, ähnlich wie IN$ nin in

relationale Datenbank

, im Gegensatz zu $in

$or, äquivalent zu OR in relationaler Datenbank, Angabe der Beziehung von oder,
Zum Beispiel zum Abfragen von Dokumenten mit dem Namen user2 oder Alter 3, der Befehl lautet:
db .customer.find({$or:[{name:“user2“},{age:3}]})

$nor, was Herausfiltern bedeutet bestimmte Daten basierend auf Bedingungen, zum Beispiel, wenn der Abfragename nicht Benutzer2 ist. Für Dokumente, deren Alter nicht 3 ist, lautet der Befehl:
db.customer.find({$nor:[{name:“user2“} ,{age:3}]})

$exists, zum Abfragen von Dokumenten, für die ein bestimmter Schlüssel vorhanden ist oder für die ein bestimmter Schlüssel nicht in der Sammlung vorhanden ist, um beispielsweise alle Dokumente mit dem abzufragen Namensschlüssel in der Kundensammlung können Sie
db.customer.find({name:{$exists:1} })
$exists:1 bedeutet wahr, bedeutet, dass es existiert
$exists:0 bedeutet falsch, bedeutet, dass es nicht existiert

Cursor

Update-Set-Dokument
Syntax: db.collection.update(criteria, objNew, upsert, multi)
Parameterbeschreibung:
Kriterien: Objekt zum Festlegen von Abfragebedingungen
objNew: verwendetes Objekt zum Festlegen von Aktualisierungsinhalten
upsert: Wenn der Datensatz bereits vorhanden ist, aktualisieren Sie ihn, andernfalls fügen Sie ihn hinzu Bei einem neuen Datensatz ist der Wert 0 oder 1
multi: Wenn mehrere Datensätze die Bedingungen erfüllen, wird festgelegt, ob alle aktualisiert werden sollen. Der Wert ist 0 oder 1

Hinweis: Nur standardmäßig Der erste qualifizierte Datensatz wird aktualisiert.
Im Allgemeinen sind die letzten beiden Parameter jeweils 0,1, d Dokument mit dem Namen user1 in der Sammlung zum Benennen von jack:
db.c1.update({name: "user1"},{ name:"jack"})

$set wird verwendet, um den Wert von anzugeben einen Schlüssel. Wenn der Schlüssel nicht vorhanden ist, erstellen Sie ihn. Beispiel:
Um dem Dokument mit dem Namen user1 eine Adresse hinzuzufügen, können Sie den folgenden Befehl verwenden:

db.c1.update({name:“user1“},{$set:{address:“bj“}} ,0, 1)

Ändern Sie die Adresse des Dokuments namens user1 in tj,
lassen Sie andere
Schlüssel-Wert-Paare unverändert, der Befehl lautet:
db.c1.update({name:” user1“},{ $set:{address:“tj“}},0,1)Verwenden Sie $inc, um 1 zum Alter namens user1 im Satz hinzuzufügen, wobei andere Schlüssel unverändert bleiben
$inc bedeutet, einen bestimmten Wert zu addieren oder vom Schlüsselwert zu subtrahieren

db.c1.update({name:"user1"},{$inc:{age:1}})


$unset wird verwendet, um einen Schlüssel zu löschen
Um beispielsweise den Adressschlüssel im Dokument namens user1 zu löschen, können Sie den Befehl verwenden:

db.c1.update({name:“user1“},{ $unset:{address:1}},0,1)



2

Indizes werden verwendet, um Abfragen zu beschleunigen. Ein Datenbankindex ähnelt einem Buchindex: Bei einem Index müssen Sie nicht das gesamte Buch durchsuchen, sondern die Datenbank kann direkt im Index suchen, wodurch die Suchgeschwindigkeit um mehrere Größenordnungen beschleunigt wird. Sobald ein Eintrag im Index gefunden wird, können Sie direkt zum Speicherort des Zieldokuments springen.

Normaler Index:
Erstellen: db.collection.ensureIndex({key:1})
Zugehörige Informationen zum Index anzeigen: db.collection.stats()
Den verwendeten Index anzeigen durch die Abfrage Situation: db.collection.find({key:value}).explain()
Index löschen: db.collection.dropIndex({key:1})
Durch das Löschen der Sammlung wird auch der Index entfernt in der Sammlung Alle löschen

Eindeutiger Index:
Erstellen: db.collection.ensureIndex({key:1}, {unique:true})
Verwandte Informationen zum Index anzeigen: db.collection .stats( )
Indexverwendung in der Abfrage anzeigen: db.collection.find({key:value}).explain()
Index löschen: db.collection.dropIndex({key:1})
Löschen Sie die Sammlung, alle Indizes in der Sammlung werden ebenfalls gelöscht

3. Begrenzte Sammlung (begrenzte Sammlung)

Eine feste Sammlung bezieht sich auf eine Sammlung, die wird im Voraus erstellt und hat eine feste Größe.

Funktionen für feste Sammlungen: Eine feste Sammlung ähnelt einer Ringwarteschlange. Wenn nicht genügend Speicherplatz vorhanden ist, wird das älteste Dokument gelöscht, um Platz für neue Dokumente zu schaffen. Im Allgemeinen eignen sich feste Sammlungen für jedes Szenario, in dem Sie abgelaufene Attribute automatisch und ohne allzu viele betriebliche Einschränkungen entfernen möchten.

Erstellen Sie eine feste Sammlung:
db.createCollection(“collectionName”,{capped:true,size:100000,max:100});
size gibt die Sammlungsgröße an, die Einheit ist KB , max gibt die Anzahl der Dokumente an

Bei der Angabe der Obergrenze der Anzahl der Dokumente muss auch die Größe angegeben werden. Der Eliminierungsmechanismus funktioniert nur dann basierend auf der Anzahl der Dokumente, wenn die Kapazität nicht voll ist. Wenn die Kapazität voll ist, funktioniert der Eliminierungsmechanismus basierend auf der Kapazität.

4. Sicherung (mongodump) und Wiederherstellung (mongorestore)

MongoDB bietet Sicherungs- und Wiederherstellungsfunktionen, nämlich mongodump.exe und mongorestore im MongoDB-Downloadverzeichnis. exe-Datei (d. h. der Befehl im Mongodb-Bin-Verzeichnis)

Um Daten zu sichern, verwenden Sie den folgenden Befehl:
mongodump -h dbhost -d dbname -o dbdirectory
-h: The Serveradresse, auf der sich MongDB befindet, zum Beispiel: 127.0.0.1, natürlich können Sie auch die Portnummer angeben: 127.0.0.1:27017
-d: Die Datenbankinstanz, die gesichert werden muss, zum Beispiel: test
-o: Der Speicherort der Sicherungsdaten, zum Beispiel: c:datadump, natürlich muss das Verzeichnis
im Voraus erstellt werden. Nach Abschluss der Sicherung erstellt das System automatisch ein Testverzeichnis im Dump-Verzeichnis . Dieses
-Verzeichnis speichert die Sicherungsdaten der Datenbankinstanz.

Um Daten wiederherzustellen, verwenden Sie den folgenden Befehl:
mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h: MongoDB-Serveradresse
-d: Die Datenbankinstanz, die sein muss wiederhergestellt, zum Beispiel: test, dieser Name kann sich natürlich auch von dem beim Backup verwendeten unterscheiden, etwa test2
-directoryperdb: der Speicherort der Sicherungsdaten, zum Beispiel: c:datadumptest

5. Importieren (mongoimport) und exportieren (mongoexport)

Um Daten zu exportieren, können Sie den Befehl verwenden:
mongoexport -h dbhost -d dbname -c Sammlungsname -o Ausgabe
Parameterbeschreibung:
-h Datenbankadresse
-d Gibt die verwendete Bibliothek an
-c Gibt die zu exportierende Sammlung an
-o Gibt den Dateinamen an, der exportiert werden soll

Beispiel:
mongoexport -h localhost:27017 -d test -c c4 - o d:/beifeng/c4.txt

Um Daten zu importieren, können Sie den Befehl verwenden:
mongoimport -h dbhost -d Datenbankname -c Sammlungsname Die Adresse der Datei...
Parameterbeschreibung:
-h Datenbankadresse
-d gibt die verwendete Bibliothek an
-c gibt die zu importierende Sammlung an
lokale Dateiadresse...

Beispiel:
mongoimport -h localhost:27017 -d test -c cctv d:/beifeng/c4.txt

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die allgemeinen Vorgänge von MongoDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn