MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

c# драйвер за mongodb как да преобразува двойна стойност на mongo към c# десетична

Най-добрият вариант вероятно би бил това:

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

Причината, поради която това работи толкова добре, е, че абстрактният BsonValue type имплементира метод, който изглежда така:

public virtual decimal ToDecimal()

Конкретните реализации на BsonValue (напр. BsonInt32 , BsonInt64 , BsonDouble и т.н.) заменете този член с метода по-долу, който ви дава точно това, което искате, без значение дали драйверът десериализира int, long или double от съхранен документ:

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

Като алтернатива, във вашия конкретен случай (и ако всички документи в обхвата имат int, съхранен в тяхното поле "monto"), можете просто да напишете:

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

или дори само

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

които са семантично идентични.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 9 нови функции на MongoDB – трябва да се научите да владеете MongoDB

  2. Добавете поле на елемент от масив в агрегирането на MongoDB

  3. MongoDB обобщава полета, без да познава всички полета предварително

  4. Автоматично довършване с java, Redis, Elastic Search, Mongo

  5. Внедрете GraphQL API с MongoDB Atlas и Apollo Server на Koyeb