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

sterownik c# mongodb jak rzutować podwójną wartość mongo na wartość dziesiętną c#?

Najlepszą opcją byłoby prawdopodobnie to:

monto = document["monto"].ToDecimal();

Powodem, dla którego działa to tak dobrze, jest to, że abstrakcyjna BsonValue type implementuje metodę, która wygląda tak:

public virtual decimal ToDecimal()

Konkretne implementacje BsonValue (np. BsonInt32 , BsonInt64 , BsonDouble itp.) zastąp tego członka poniższą metodą, która daje dokładnie to, czego chcesz, bez względu na to, czy sterownik deserializuje int, long czy double z zapisanego dokumentu:

public override decimal ToDecimal()
{
    return (decimal)_value;
}

Alternatywnie, w konkretnym przypadku (i jeśli wszystkie dokumenty w zakresie mają int zapisany w polu „monto”), możesz po prostu napisać:

monto = Convert.ToDecimal(document["monto"].AsInt32)

a nawet po prostu

monto = (decimal)(document["monto"].AsInt32)

które są semantycznie identyczne.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. wiosna mvc reszta odpowiedzi json i xml

  2. Usuń duplikaty z MongoDB

  3. Jak rozbroić wszystkie pola z wyjątkiem znanego zestawu pól?

  4. zapytanie mongodb:jak uzyskać unikalne wpisy

  5. Błąd podczas próby aktualizacji elementu tablicy MongoDb