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

Problemy z datą i godziną w Mongo i C#

Powodem jest to, że format BSON DateTime przechowuje wartości z mniejszą precyzją niż wartość DateTime .NET, więc po odczytaniu jej z bazy danych wartość została obcięta.

Jeśli wartość DateTime jest właściwością klasy C#, którą serializujesz, możesz poprosić serializator o serializację wartości DateTime jako dokumentu osadzonego zawierającego zarówno wartość DateTime BSON (obcięta), jak i oryginalną wartość DateTime platformy .NET (przechowywaną jako Ticks). W takim przypadku wartość nie zostanie obcięta podczas deserializacji.

Na przykład:

public class MyClass {
    public ObjectId Id;
    [BsonRepresentation(BsonType.Document)]
    public DateTime MyDateTime;
}

Możesz także użyć BsonRepresentation of Int64 lub String i nie stracić precyzji, ale wtedy przechowywany dokument tylko ma Ticks lub reprezentację ciągu i nie ma BSON DateTime, co utrudnia wykonywanie zapytań związanych z DateTime.

Należy również pamiętać, że wartości DateTime są przechowywane w bazie danych w formacie UTC. Najlepszą praktyką jest, aby zawsze używać wartości UTC do przechowywania i używać tylko czasu lokalnego podczas wyświetlania ich użytkownikowi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy mongodump blokuje bazę danych?

  2. Czy Mongoose zapewnia dostęp do poprzedniej wartości właściwości w pre('save')?

  3. Jak czekać na wypchnięcie pozycji z listy mangusty?

  4. Jak napisać zapytanie o aktualizację w mongodb dla głęboko zagnieżdżonej tablicy?

  5. Mongodb ERROR:proces potomny nie powiódł się, zakończono z błędem numer 51