sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB - mongofiler

Et "GridFS-objekt" betyder i denne sammenhæng navnet på det objekt, der er gemt i GridFS-samlingerne. Forskellen forklares muligvis bedst af -- lokale mulighed på mongofiles manualside.

Det, du skal overveje her, er, at det, du har gjort, er at indsende elementer med det "samme" filnavn ved hjælp af mongofiles-værktøjet. Som angivet på manualsiden for det værktøj, er standardadfærden for put (se kommandoer ) mulighed er at oprette en ny post i butikken. Dette kan tilsidesættes med --erstat mulighed, så alt eksisterende indhold bliver fundet og overskrevet med det nye indhold, du har oprettet.

Kort sagt, uanset om filerne indeholder forskelligt indhold eller ej, har du lavet flere ting med det samme "Objektnavn". For så vidt angår mongofiles-værktøjet, ved det kun, hvordan det hentes ved "Objektnavn", så det vil bare hente det første, det finder, ifølge dets regler.

Nu i de fleste API-implementeringer af GridFS, er den faktiske get handlinger udføres typisk af _id . Hvert "objekt" du har oprettet på denne måde har stadig sit eget unikke _id værdi, så når dette anvendes, kan du få det "Objekt", du ønsker.

Nogle API-implementeringer tilføjer yderligere forespørgselstypemetoder for at finde efter "filnavn" eller andre metadataoplysninger. Men for det meste gider de ikke, da disse egentlig bare er standard .find() eller .findOne() operationer på en hvilken som helst samling indeholder indholdets metadata og referencer (fs.files som standard). Dette giver en mere end rimelig mængde måder at "finde" et bestemt objekt på og udstede det _id værdi gennem get grænsefladen for denne API.

Så mens mongofiler er et godt værktøj til at udføre grundlæggende CRUD-operationer fra kommandolinjen, det er blot et værktøj og ikke hovedimplementeringen af ​​"hvordan man gør det". Så som et hjælpeprogram giver det en "bekvemmelig" form for indstilling og hentning af objekter ved at bruge "filnavn"-delen af ​​objektidentifikatoren.

Det er også værd at bemærke, at du bør Behandl virkelig en GridFS-butik ligesom et filsystem, og hold dine "filnavne" unikke, ligesom det ville kræves i et filsystem.

Men hvad angår mongofilerne værktøjet, er "navnet" alt hvad du skal gå videre til for at hente oplysninger. Prøv ikke at gøre det, eller brug virkelig dit valgte sprog API til at gøre arbejdet i stedet for.



  1. Kan ikke oprette forbindelse til en Mongodb-pod i Kubernetes (Forbindelse nægtet)

  2. Hent det seneste underdokument fra Array

  3. Tornado-fejl:[Errno 24] Fejl ved for mange åbne filer

  4. StackExchange.Redis med Azure Redis er ubrugelig langsom eller kaster timeoutfejl