Ich habe gerade ein bizarres Verhalten von MongoDB entdeckt.
Offenbar jeder Sammlungsname mit der Zeichenfolge "system". Irgendwo darin wird einfach nicht richtig funktionieren.
Um es noch schlimmer zu machen, es wird Ihnen nicht einmal sagen, dass etwas nicht stimmt!
Es ist wirklich mehr eine Frage der Neugier, aber hat irgendjemand eine Idee, warum das passieren würde? Ist das irgendwo dokumentiert?
Meine Annahme ist, dass es "system. *" Collections verwendet, um Dinge intern zu speichern (wie Indizes) und will nicht, dass Sie sich damit anlegen, aber das scheint mir nicht das richtige Verhalten zu sein.
>Sie sind korrekt "system. *" ist ein reservierter Sammlungsnamespace, der von MongoDB in jedem DB verwendet wird.
Es wird verwendet, um Indizes und Benutzer usw. zu speichern.
SQL Server hat viele solcher Tabellen, und ich glaube nicht, dass sie Sie warnen, sie auch nicht zu benutzen:)
Aber Sie könnten immer eine Anfrage für solche Funktionen stellen: Ссылка
Sie können sie sehen, indem Sie ...
ausführen > show collections
und du wirst etwas wie ...
sehen system.indexes
system.users
So können Sie Ihre Indizes zum Beispiel sehen:
> db.system.indexes.find()
Aus den MongoDB-Dokumenten:
Die .system. * Namespaces in MongoDB sind speziell und enthalten Datenbanksysteminformationen. System Sammlungen umfassen:
- system.namespaces listet alle Namespaces auf.
- system.indexes listet alle Indizes auf.
- Zusätzliche Namespace- / Index-Metadaten sind in der Datei database.ns vorhanden Dateien und ist undurchsichtig.
- system.profile speichert Datenbankprofilinformationen.
- system.users listet Benutzer auf, die auf die Datenbank zugreifen können.
- local.sources speichert Replikat-Slave-Konfigurationsdaten und -Status.
- Informationen zur Struktur eines gespeicherten Objekts werden in der Objekt selbst. Siehe BSON.
Es gibt mehrere Einschränkungen Manipulation von Objekten im System Sammlungen. Einfügen in system.indexes fügt einen Index hinzu, aber andernfalls ist diese Tabelle unveränderlich (die spezielle Drop-Index-Befehl aktualisiert es für dich). system.users ist änderbar. system.profile ist abwerfbar.
Tags und Links mongodb