sql >> Databáze >  >> NoSQL >> MongoDB

Ovladač c# mongodb jak přetypovat dvojitou hodnotu mongo na desítkovou hodnotu c#

Nejlepší možností by pravděpodobně bylo toto:

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

Důvodem, proč to tak dobře funguje, je abstraktní BsonValue type implementuje metodu, která vypadá takto:

public virtual decimal ToDecimal()

Konkrétní implementace BsonValue (např. BsonInt32 , BsonInt64 , BsonDouble atd.) přepište tento člen níže uvedenou metodou, která vám dá přesně to, co chcete, bez ohledu na to, zda ovladač deserializuje int, long nebo double z uloženého dokumentu:

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

Případně ve vašem konkrétním případě (a pokud všechny dokumenty v rozsahu mají v poli „monto“ uloženo int) můžete jednoduše napsat:

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

nebo dokonce jen

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

které jsou sémanticky totožné.



  1. python flask jak předat dynamický parametr dekorátoru

  2. MongoDB $setEquals

  3. Rozdíl mezi poli id ​​a _id v MongoDB

  4. rozdíl mongodb remove() vs findOneAndDelete() vs deleteOne()