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

Różnica MongoDB między obiektem DateTime a ciągiem RRRR-MM-DD

Jeśli nie zależy Ci na obsłudze stref czasowych w Twojej aplikacji, użycie ciągów znaków do podstawowych zapytań w MongoDB powinno działać dobrze (ale jeśli ma to znaczenie, będziesz potrzebować prawdziwej Date typ).

Jeśli jednak później zechcesz wykonać obliczenia na datach lub użyć struktury agregacji z polem daty, konieczne jest, aby pole to faktycznie było Date typ:

http://docs.mongodb.org/manual/reference/aggregation/ #operatorzy-dat

Na przykład możesz użyć $dayOfWeek funkcja na Date wpisane pole.

Prawdopodobnie możesz zrobić kilka prostych rzeczy, takich jak grupowanie na rok, używając $substr (doc ) w MongoDB, ale wynikowy kod nie będzie tak przejrzysty (ani prawdopodobnie nie będzie działał równie dobrze).

Chociaż nie jest to duża różnica, zalecam przechowywanie ich jako Date typy, jeśli to możliwe ogólnie.

Widzę w dokumentacji dla sterownika Perl, przed którym programiści są ostrzegani przy użyciu DateTime ze względu na to, że jest bardzo powolny, więc może jeśli regularnie używasz Perla, a Aggregation Framework nie stanowi dużego problemu, lepiej byłoby przechowywać je jako liczby lub jako ciągi i konwertować je w razie potrzeby w Perl.

Jeśli spacja stanowi problem, usuń niepotrzebne znaki (takie jak - ):

20130613 -> 
    4 bytes for length of string 
    8 bytes encoded as UTF-8
    NULL character

To byłoby 13 znaków. Wartość DateTime w BSON Z drugiej strony /MongoDB wymaga 8 bajtów (podobnie jak Perl $time funkcja).

(Zdecydowanie polecam przeprowadzić trochę testów wydajności, aby dowiedzieć się, czy wpływ na wydajność przy użyciu Date wpisz MongoDB z Perlem wpłynie na twoje typowe przepływy pracy.)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Aktualizacja zagnieżdżonego rekordu w tablicy mongodb, gdy nie znasz indeksu dokumentu

  2. MongoDB Dopasowuje tablicę z typem $?

  3. OData - Dziwny indeks z MongoDB [Mongoose:błąd rzutowania]

  4. Moja metoda $push w Mongoose nie działa dobrze

  5. Meteor - Błąd MongoDB:nie można zastosować modyfikatora $addToSet do nie-tablicy