Ами "обект на GridFS" в този контекст означава името на обекта, съхранен в колекциите на GridFS. Разликата може би се обяснява най-добре от -- локален
опция на страницата с ръководството на mongofiles.
Това, което трябва да вземете предвид тук, е, че това, което сте направили, е да изпратите елементи с „същото“ име на файл с помощта на помощната програма mongofiles. Както е отбелязано в страницата с ръководство за тази помощна програма, поведението по подразбиране за put
(вижте команди
) е да създадете нов запис в магазина. Това може да бъде заменено с --replaceкод>
опция, така че всяко съществуващо съдържание да бъде намерено и презаписано с новото съдържание, което сте създали.
Накратко, независимо дали файловете съдържат различно съдържание или не, вие сте създали няколко неща с едно и също „Име на обект“. Що се отнася до помощната програма mongofiles, тя знае как да извлича само по „име на обект“, така че просто ще извлече първия, който намери, според своите правила.
Сега в повечето API реализации на GridFS действителният get
операциите обикновено се извършват от _id
. Всеки „Обект“, който сте създали по този начин, все още има свой собствен уникален _id
стойност, така че когато това се приложи, можете да получите „Обекта“, който искате.
Някои реализации на API добавят допълнителни методи за тип заявка, за да се намери по „име на файл“ или друга информация за метаданни. Но най-вече те не се притесняват, тъй като това са наистина стандартни .find()
или .findOne()
операциите върху която и да е колекция съдържат метаданните за съдържанието и препратките (fs.files по подразбиране). Това осигурява повече от разумно количество начини за „намиране“ на определен обект и издаване на този _id
стойност чрез get
интерфейс на този API.
И така, докато mongofiles
е хубава помощна програма за извършване на основни операции от типа CRUD от командния ред, тя е просто помощна програма, а не основната реализация на „как да го направя“. Така че като помощна програма, той предоставя "удобна" форма за настройка и получаване на обекти, използвайки частта "име на файл" от идентификатора на обекта.
Също така си струва да се отбележи, че трябва наистина третирайте хранилището на GridFS точно като файлова система и поддържайте вашите „имена на файлове“ уникални точно както би се изисквало във файлова система.
Но що се отнася до mongofiles
помощна програма, "името" е всичко, което трябва да продължите, за да извлечете информация. Опитайте се да не правите това или вместо това наистина използвайте избрания от вас езиков API, за да свършите работата.