sql >> Database >  >> NoSQL >> MongoDB

MongoDB - mongobestanden

Welnu, een "GridFS-object" betekent in deze context de naam van het object dat is opgeslagen in de GridFS-collecties. Het onderscheid wordt mogelijk het best verklaard door de --local optie op de handleidingpagina van mongofiles.

Wat je hier moet overwegen, is dat je items hebt ingediend met de "dezelfde" bestandsnaam met behulp van het hulpprogramma mongofiles. Zoals opgemerkt in de handleiding voor dat hulpprogramma, is het standaardgedrag voor de put (zie commando's ) optie is om een ​​nieuw item in de winkel aan te maken. Dit kan worden overschreven met de --replace optie zodat alle bestaande inhoud wordt gevonden en overschreven met de nieuwe inhoud die u hebt gemaakt.

Kortom, ongeacht of de bestanden verschillende inhoud bevatten of niet, je hebt verschillende dingen gemaakt met dezelfde "Objectnaam". Wat het hulpprogramma mongofiles betreft, het weet alleen hoe het moet ophalen met de "Objectnaam", dus het haalt alleen de eerste op die het vindt, volgens de regels.

Nu is in de meeste API-implementaties van GridFS de feitelijke get bewerkingen worden meestal gedaan door _id . Elk "Object" dat je op deze manier hebt gemaakt, heeft nog steeds zijn eigen unieke _id waarde, dus wanneer dit wordt toegepast, kunt u het "Object" krijgen dat u wilt.

Sommige API-implementaties voegen extra querytype-methoden toe om te zoeken op "bestandsnaam" of andere metagegevensinformatie. Maar meestal storen ze zich er niet aan, want deze zijn eigenlijk gewoon standaard .find() of .findOne() operaties op welke verzameling dan ook bevatten de inhoud meta-data en referenties (fs.files standaard). Dit biedt een meer dan redelijk aantal manieren om een ​​bepaald object te "vinden" en uit te geven dat _id waarde via de get interface van die API.

Dus terwijl mongofiles is een leuk hulpprogramma voor het uitvoeren van basisbewerkingen van het CRUD-type vanaf de opdrachtregel, het is slechts een hulpprogramma en niet de hoofdimplementatie van "hoe het te doen". Dus als een hulpprogramma biedt het een "gemakkelijke" vorm van het instellen en ophalen van objecten, waarbij het het "bestandsnaam"-gedeelte van de object-ID gebruikt.

Ook vermeldenswaard is dat u moet behandel een GridFS-winkel echt net als een bestandssysteem, en houd uw "bestandsnamen" uniek, net zoals vereist zou zijn in een bestandssysteem.

Maar wat betreft de mongofiles hulpprogramma, is de "naam" alles wat u hoeft te doen om informatie op te halen. Probeer dat niet te doen, of gebruik in plaats daarvan de door u gekozen taal-API om het werk te doen.



  1. JavaScript-ontwerppatronen -- Omgaan met ongewenste asynchronie

  2. MongoDB-aggregatiequery om te tellen

  3. mangoest findByIdAndDelete / findOneAndRemove niet verwijderen

  4. Nginx gebruiken om inhoud rechtstreeks vanuit een redis-cache weer te geven