2012-05-14 1 views
0

Je suis en train de migrer une base de données MySQL vers MongoDB. Cependant, je rencontre un problème où MongoDB change le type de document en fonction de la longueur/valeur de la chaîne de caractères/nombre entier utilisée pour l'initialiser. Est-ce qu'il y a un moyen d'éviter cela? Je veux que les types soient identiques dans une collection. Je suis nouveau à cette technologie et m'excuse si j'ai manqué quelque chose. J'ai regardé autour de moi et je n'ai pas trouvé de solution à cela. Tous les pointeurs sont grandement appréciés.Assurez-vous que des champs de même type existent dans plusieurs documents d'une collection dans mongodb

grâce,

Asha

+1

il serait utile si vous laissez-nous savoir comment vous migrez ces données. –

+0

Oh, j'ai juste l'intention de dupliquer les données pour le moment. Toutes les collections auront la même structure que leurs homologues MySQL. Donc, essentiellement, j'écris des programmes Java et C++ pour copier les données. – Alice

+0

Qu'est-ce qu'un type "document" dans MongoDB? Voulez-vous dire les types "élément", c'est-à-dire les champs du document? (comme décrit dans les documents ici: http://www.mongodb.org/display/DOCS/Data+Types+and+Conventions) Si tel est le cas, alors en utilisant le pilote, vous devriez être en mesure de définir le type de champ dans le requêtes ... comme @Asha suggéré, partager du code qui fait la copie et nous pouvons essayer de déboguer :) –

Répondre

0

Si vous écrivez votre demande de migration en C++, consultez la classe BSONObjBuilder dans "BSON/bsonobjbuilder.h". Si vous créez vos documents BSON individuels en utilisant les méthodes "append" de BSONObjBuilder, le générateur utilisera les types statiques des champs pour définir le type BSON approprié dans l'objet de sortie.

Par exemple:

int count = /*something from a mysql query*/; 
std::string name = /*something else from a mysql query*/; 
BSONObjBuilder builder; 
builder.append("count", count); 
builder.append("name", name); 
BSONObj result = builder.obj(); 
Questions connexes