MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB - Mongofiles

Nun, ein "GridFS-Objekt" bedeutet in diesem Zusammenhang den Namen des Objekts, das in den GridFS-Sammlungen gespeichert ist. Die Unterscheidung wird möglicherweise am besten durch den -- erklärt. lokal Option auf der Mongofiles-Handbuchseite.

Was Sie hier beachten müssen, ist, dass Sie Elemente mit dem "gleichen" Dateinamen mit dem Dienstprogramm mongofiles eingereicht haben. Wie in der Handbuchseite für dieses Dienstprogramm angegeben, ist das Standardverhalten für put (siehe Befehle ) besteht darin, einen neuen Eintrag im Geschäft zu erstellen. Dies kann mit dem --replace<überschrieben werden /code> Option, damit alle vorhandenen Inhalte gefunden und mit den von Ihnen erstellten neuen Inhalten überschrieben werden.

Kurz gesagt, unabhängig davon, ob die Dateien unterschiedliche Inhalte enthalten oder nicht, Sie haben mehrere Dinge mit demselben "Objektnamen" erstellt. Was das Mongofiles-Hilfsprogramm betrifft, so weiß es nur, wie es nach dem "Objektnamen" abruft, also wird es nach seinen Regeln nur das erste abrufen, das es findet.

Jetzt ist in den meisten API-Implementierungen von GridFS der eigentliche get Operationen werden normalerweise von _id durchgeführt . Jedes "Objekt", das Sie auf diese Weise erstellt haben, hat immer noch seine eigene eindeutige _id Wert, wenn dieser angewendet wird, können Sie das gewünschte "Objekt" erhalten.

Einige API-Implementierungen fügen zusätzliche Abfragetypmethoden hinzu, um nach „Dateiname“ oder anderen Metadateninformationen zu suchen. Aber meistens stören sie nicht, da es sich wirklich nur um Standard .find() oder .findOne() Operationen für beliebige Sammlungen enthalten die Metadaten und Referenzen des Inhalts (standardmäßig fs.files ). Dies bietet mehr als vernünftige Möglichkeiten, ein bestimmtes Objekt zu "finden" und diese _id auszugeben Wert durch get Schnittstelle dieser API.

Während also mongofiles ist ein nettes Dienstprogramm zum Ausführen grundlegender CRUD-Operationen über die Befehlszeile. Es ist lediglich ein Dienstprogramm und nicht die Hauptimplementierung von "How to do it". Als Dienstprogramm bietet es also eine "bequeme" Form zum Setzen und Abrufen von Objekten, indem es den "Dateinamen"-Teil der Objektkennung verwendet.

Erwähnenswert ist auch, dass Sie sollten Behandeln Sie einen GridFS-Speicher wirklich wie ein Dateisystem und halten Sie Ihre "Dateinamen" eindeutig, so wie es in einem Dateisystem erforderlich wäre.

Aber was die mongofiles betrifft Dienstprogramm ist der "Name" alles, was Sie brauchen, um Informationen abzurufen. Versuchen Sie, dies nicht zu tun, oder verwenden Sie stattdessen die von Ihnen gewählte Sprach-API, um die Arbeit zu erledigen.