MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB - mongofiles

„Obiekt GridFS” w tym kontekście oznacza nazwę obiektu przechowywanego w kolekcjach GridFS. To rozróżnienie jest prawdopodobnie najlepiej wyjaśnione przez -- lokalny na stronie podręcznika mongofiles.

Musisz wziąć pod uwagę, że to, co zrobiłeś, to przesłanie elementów z „taką samą” nazwą pliku za pomocą narzędzia mongofiles. Jak zauważono na stronie podręcznika tego narzędzia, domyślne zachowanie dla put (patrz polecenia ) opcja polega na utworzeniu nowego wpisu w sklepie. Można to zmienić za pomocą --replace opcję, aby wszelkie istniejące treści zostały znalezione i zastąpione nową treścią, którą utworzyłeś.

Krótko mówiąc, niezależnie od tego, czy pliki zawierają różne treści, czy nie, stworzyłeś kilka rzeczy o tej samej „Nazwie obiektu”. Jeśli chodzi o narzędzie mongofiles, potrafi ono pobierać tylko według „Nazwy obiektu”, więc po prostu pobierze pierwszy znaleziony zgodnie z własnymi zasadami.

Teraz w większości implementacji API GridFS, rzeczywisty pobierz operacje są zazwyczaj wykonywane przez _id . Każdy utworzony w ten sposób „Obiekt” nadal ma swój unikalny _id wartość, więc gdy to zostanie zastosowane, możesz uzyskać żądany „obiekt”.

Niektóre implementacje API dodają dodatkowe metody typu zapytania w celu wyszukiwania według „nazwy pliku” lub innych informacji metadanych. Ale przeważnie nie przeszkadzają, ponieważ tak naprawdę są to tylko standardowe .find() lub .findOne() operacje na dowolnej kolekcji przechowują metadane treści i referencje (domyślnie fs.files). Zapewnia to więcej niż rozsądną ilość sposobów na „znalezienie” określonego obiektu i wydanie tego _id wartość poprzez pobierz interfejs tego API.

Więc podczas gdy mongofiles jest fajnym narzędziem do wykonywania podstawowych operacji typu CRUD z wiersza poleceń, jest po prostu narzędziem, a nie główną implementacją "jak to zrobić". Tak więc jako narzędzie zapewnia "wygodną" formę ustawiania i pobierania obiektów, używając części "filename" identyfikatora obiektu.

Warto również zauważyć, że powinno się naprawdę traktuj magazyn GridFS jak system plików i utrzymuj swoje "nazwy plików" unikatowe, tak jak byłoby to wymagane w systemie plików.

Ale jeśli chodzi o mongofile narzędzie, "imię" to wszystko, co musisz zrobić, aby uzyskać informacje. Spróbuj tego nie robić lub naprawdę użyj interfejsu API wybranego języka do wykonania pracy.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. NodeJS i MongoDB FindAndModify() wymagają usunięcia lub aktualizacji

  2. Błąd krytyczny:nie znaleziono klasy „MongoDB\Driver\Manager”

  3. Dlaczego nie zaleca się używania funkcji przechowywanych po stronie serwera w MongoDB?

  4. Konwertuj format daty i godziny z usługi internetowej na ciąg

  5. Lista atrybutów dynamicznych w modelu Mongoid