sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo konverterar alla numeriska fält som lagras som sträng

Något sådant här borde fungera från mongo-skalet:

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) } }
        )
    }
})

Den går igenom varje dokument, använder isNaN som du föreslog, sedan $sets värdet till parseFloat värde för det aktuella dokumentet.



  1. MongoDB Document Re-shaping

  2. det går inte att starta mongodb lokal server

  3. Laravel 4 :Anrop till odefinierad metod Redis::connection()

  4. Vad är det rätta sättet att göra en synkron MongoDB-fråga i Node.js?