Zusammenfassung der MongoDB-Tipps und Vorsichtsmaßnahmen

小云云
Freigeben: 2023-03-17 17:34:01
Original
1283 Leute haben es durchsucht

Mongodb, eine verteilte Dokumentenspeicherdatenbank, die in der Sprache C++ geschrieben ist, zielt darauf ab, skalierbare, leistungsstarke Datenspeicherlösungen für WEB-Anwendungen bereitzustellen. MongoDB ist eine leistungsstarke, schemalose Open-Source-Dokumentendatenbank, die derzeit eine beliebte NoSQL-Datenbank ist. In diesem Artikel werden Ihnen die Lösungstechniken für Probleme vorgestellt, die bei der Verwendung von MongoDB auftreten, und diese zu Referenz- und Lernzwecken weitergeben.

1. Suchen Sie Datensätze, deren Array-Felder nicht leer sind.

Suchen Sie Datensätze, deren Array-Felder in den Daten nicht leer sind.

Zum Beispiel: Es gibt das folgende Mongo-Dokument:

{
 "id" : "581c060f2b436c05aafb1632",
 "commit_history" : [ 
 "581c20d52b436c05aafb1633", 
 "581c21c12b436c05aafb1634"
 ]
},
{
 "id" : "581c060f2b436c05aafb1633",
 "commit_history" : []
}
Nach dem Login kopieren

Wenn Sie Datensätze finden möchten, deren commit_history nicht leer ist, gibt es die folgenden Methoden:

Methode 1: db.collection .find({commit_history: {$not: {$size: 0}}})

Methode 2: db.collection.find({'commit_history.0': {$exists: 1}})

2. Einen Benutzer zu MongoDB hinzufügen

Um einen Benutzer zu einer Sammlung in MongoDB hinzuzufügen, können Sie Folgendes tun:

Verwenden Sie den Sammlungsnamen um zu einer Bibliothek zu wechseln

db.createUser(
 {
 user: "collection_name",
 pwd: "password",
 roles: [ "readWrite", "dbAdmin" ]
 }
)
Nach dem Login kopieren

3. Manchmal ist es notwendig, die Spalte des angegebenen Feldes zu löschen und den Aktualisierungsvorgang zu verwenden.

Um beispielsweise die Namensspalte zu löschen:

JSON abfragen:

{"name":{$exists:true}}
Nach dem Login kopieren

JSON aktualisieren:

{$unset:{"name":""}}
Nach dem Login kopieren

4. Datenexport: Führen Sie den Befehl mongoexport im bin-Verzeichnis von mongodb aus und legen Sie die relevanten Parameter fest.

Beispiel:

./mongoexport -h 192.168.0.201 --port 27017 –d admin –u admin –p admin -c department -o /home/admin/department.dat
Nach dem Login kopieren

-h: Geben Sie die IP der zu verbindenden Datenbank an

- -port: Geben Sie den Port der zu verbindenden Datenbank an;

-u: Geben Sie den Benutzernamen der zu verbindenden Datenbank an;

-p: Geben Sie an Benutzerpasswort der zu verbindenden Datenbank;

-d: Geben Sie den Namen der zu verbindenden Bibliothek an

-c: Geben Sie den zu exportierenden Datensatz an; o: Geben Sie die Zielspeicheradresse der zu exportierenden Daten an;

Hinweis: (1) Es muss sichergestellt werden, dass die verbundene Datenbank im Normalbetrieb ist


(2) Ich bin einmal auf eine Situation gestoßen, in der Benutzerinformationen zur Datenbank hinzugefügt wurden und diese beim Start nicht mit Benutzerauthentifizierung gestartet wurde. Beim Ausführen dieses Befehls war der Export jedoch erfolgreich . Wenn jemand auf eine ähnliche Situation stößt, können Sie es genauso gut versuchen.

5. Datenimport, führen Sie den Befehl mongoimport im bin-Verzeichnis von mongodb aus und legen Sie die relevanten Parameter fest. Die Parametererklärung ist die gleiche wie oben

Zum Beispiel:

./mongoimport --port 27017 -d admin -u admin –p admin –c department /home/common/mongodb305/bin/department.dat
Nach dem Login kopieren


6. Probleme bei der Benutzerüberprüfung für Nicht-AMDIN-Datenbanken:


Wenn wir Benutzer zur Bibliothek in der Mongodb-Datenbank hinzufügen, können wir die folgenden Befehle verwenden in der Zieldatenbank beispielsweise in der MongoTest-Bibliothek hinzufügen Ein Benutzer mit Lese- und Schreibberechtigungen:

db.createUser({"user":"test","pwd":"123456","roles":["readWrite"]})
Nach dem Login kopieren


kann auch in der Admin-Datenbank hinzugefügt werden:

db.createUser({"user":"test","pwd":"123456","roles":[{"role":"readWrite","db":"test"},"readWrite"]})
Nach dem Login kopieren


Es sollte beachtet werden, dass es einen Unterschied zwischen diesen beiden Methoden gibt, und dieser Unterschied hat mich einmal getäuscht:

Bei der Verwendung der ersten Zum Hinzufügen der Methode können wir sie im bin-Verzeichnis von mongodb hinzufügen. Führen Sie den folgenden Befehl direkt aus, um die Testdatenbank aufzurufen. Sie können diesen Benutzer hinzufügen, löschen, ändern und überprüfen Der Name und das Passwort sind in mongoVUE verbunden:

./mongo -h 192.168.0.201 --port 27017 -u test -p 123456 -d test
Nach dem Login kopieren


Aber wenn es auf die zweite Art erstellt wird und Sie den obigen Befehl direkt verwenden, wird dies angezeigt Die Überprüfung ist nur dann fehlgeschlagen, wenn Sie zuerst mongo eingeben Die Shell wird mit der Admin-Datenbank verbunden und kann dann beim Wechsel zur Testdatenbank überprüft werden. Dies ist eine kleine Gefahr. Wer die Situation nicht kennt, ist vielleicht sehr verwirrt. Es ist klar, dass der Benutzername und das Passwort in Ordnung sind, aber aus irgendeinem Grund kann keine Verbindung hergestellt werden.

7. Die Standard-Datenspeichermethode von mongodb3.0 ist immer noch die gleiche wie die von mongodb 2.6. Ich habe versucht, beim Start auf die neue Speichermethode umzusteigen dass keine Daten in der Datenbank vorhanden sein müssen. Dies ist nur möglich, wenn die Daten erforderlich sind, andernfalls wird ein Fehler gemeldet:

Verschiedene andere Parameter für den Start, wie z. B. dbpath, logpath usw ., werden in mongodb.conf konfiguriert.
./mongod -f /mongodb304/conf/mongodb.conf --storageEngine wiredTiger
Nach dem Login kopieren


Der obige Inhalt ist eine Zusammenfassung der Tipps und Vorsichtsmaßnahmen für den täglichen Gebrauch von MongoDB. Ich hoffe, dass er allen helfen kann.

Verwandte Empfehlungen:

Was ist die MongoDB-Datenbank?

Wie phpstudy MongoDB erweitert

So verbessern Sie die Sicherheit von MongoDB

Das obige ist der detaillierte Inhalt vonZusammenfassung der MongoDB-Tipps und Vorsichtsmaßnahmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!