La seule façon de modifier le $type
des données est d'effectuer une mise à jour des données lorsque celles-ci ont le bon type.
Dans ce cas, il semble que vous essayez de modifier l'adresse de l'utilisateur. $type
de 1 (double) à 2 (corde). http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24type
Il suffit donc de charger le document depuis la BD, d'effectuer le cast ( new String(x)
), puis enregistrez à nouveau le document.
Si vous devez effectuer cette opération de manière programmatique et entièrement à partir du shell, vous pouvez utiliser la fonction find(...).forEach(function(x) {})
la syntaxe.
En réponse au deuxième commentaire ci-dessous. Changez le champ bad
d'un nombre à une chaîne de caractères dans une collection foo
.
db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {
x.bad = new String(x.bad); // convert field to string
db.foo.save(x);
});
0 votes
Si quelqu'un se trouve dans la même situation que moi, devant
toString
le champ d'un document, voici le petit programme que j'ai fait/utilisé .