web-dev-qa-db-fra.com

MongoDB prend-il en charge les types à virgule flottante?

Je migre une base de données mysql vers mongodb. Mais j'ai lu dans les types de données MongoDb et puis il n'y a pas de référence aux types à virgule flottante comme, float, double, decimal.

Et comment j'ai des champs avec des types décimaux dans mon schéma SQL, comment puis-je faire ou que puis-je faire?

26
ulima69

MongoDB stocke les données dans un format binaire appelé BSON qui prend en charge les types de données numériques suivants:

  • int32 - 4 octets (entier signé 32 bits)
  • int64 - 8 octets (entier signé de 64 bits)
  • double - 8 octets (virgule flottante IEEE 754 64 bits)

Il n’existe pas de valeur exacte équivalente au type decimal de mySQL dans MongoDB, mais vous pouvez stocker des nombres à virgule flottante 64 bits dans Mongo sous la forme d'une double.

Il convient de noter que le shell MongoDB - en tant que shell JavaScript - ne reconnaît pas la distinction entre les valeurs entières et les valeurs à virgule flottante, il traite tous les nombres de la même manière, car JavaScript représente tous les nombres en virgule flottante 64 bits, quel que soit le BSON sous-jacent type.

La plupart des pilotes de langue MongoDB font cependant la distinction entre les types entiers et les types à virgule flottante.

31
Chris Fulstow

Chris a déjà fourni des informations sur les types à virgule flottante, je vais donc simplement ajouter des informations sur Type de données décimal ajouté dans Mongo 3.4

3.4 ajoute la prise en charge du format decimal128 avec le nouveau type de données décimal. Le format décimal128 prend en charge les nombres avec un maximum de 34 décimales chiffres (c’est-à-dire des chiffres significatifs) et une plage d’exposants de -6143 à +6144.

Contrairement au type de données double, qui stocke uniquement une approximation du fichier valeurs décimales, le type de données décimal stocke la valeur exacte. Pour Par exemple, un nombre décimal, NumberDecimal ("9.99") a une valeur précise de 9.99 où, en tant que double, 9,99 aurait une valeur approximative de 9.990000000000000002131628 ...

3
Salvador Dali

Il a, Introduction

Une valeur est un

  • type de base comme chaîne, entier, float, horodatage, binaire, etc.,
  • un document, ou
  • un tableau de valeurs
1
lostyzd

MongoDB prend en charge le stockage des doublons, mais tous les pilotes ne leur fournissent pas une interface pour une raison quelconque.

De http://www.mongodb.org/display/DOCS/Data+Types+and+Conventions -

Mongo utilise des types de données spéciaux en plus des types JSON de base de chaîne, entier, booléen, double, null, tableau et objet.

0
duskwuff