"system." In einem Sammlungsnamen in MongoDB

8

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.

>     
Kevin Dolan 12.01.2011, 04:06
quelle

1 Antwort

12

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.

Ссылка

    
Justin Jenkins 12.01.2011, 08:19
quelle

Tags und Links