sql >> Database >  >> NoSQL >> MongoDB

Mongo converteert alle numerieke velden die zijn opgeslagen als string

Iets als dit zou moeten werken vanuit de mongo-shell:

db.yourCollection.find({}).forEach(function(doc) { 
    if(isNaN(doc.xyz)) { 
        print('found string: ' + doc._id);
        db.yourCollection.update( 
           { _id: doc._id}, 
           { $set : { "xyz" : parseFloat(doc.xyz) } }
        )
    }
})

Het loopt door elk document, gebruikt isNaN zoals je suggereerde, dan $sets de waarde aan de parseFloat waarde voor het huidige document.



  1. Kan geen verbinding maken met mongoDB in docker-container

  2. Hoe voeg ik een element toe aan de interne lijst van MongoDB?

  3. Hoe delen van een hiërarchie (boom) van gegevens in Redis-cache ongeldig te maken?

  4. MongoDB-oplossing voor documenten groter dan 16 MB?