MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

come convertire una stringa in valori numerici in mongodb

L'aggregazione MongoDB non è autorizzata a modificare il tipo di dati esistente di determinati campi. In questo caso dovresti creare del codice di programmazione per convertire string a int . Controlla sotto il codice

db.collectionName.find().forEach(function(data) {
    db.collectionName.update({
        "_id": data._id,
        "moop": data.moop
    }, {
        "$set": {
            "PartnerID": parseInt(data.PartnerID)
        }
    });
})

Se le dimensioni delle tue raccolte sono superiori allo script, rallenteranno le prestazioni, poiché perfomace mongo fornisce operazioni in blocco mongo, utilizzando anche operazioni in blocco mongo aggiornato il tipo di dati

var bulk = db.collectionName.initializeOrderedBulkOp();
var counter = 0;
db.collectionName.find().forEach(function(data) {
    var updoc = {
        "$set": {}
    };
    var myKey = "PartnerID";
    updoc["$set"][myKey] = parseInt(data.PartnerID);
    // queue the update
    bulk.find({
        "_id": data._id
    }).update(updoc);
    counter++;
    // Drain and re-initialize every 1000 update statements
    if (counter % 1000 == 0) {
        bulk.execute();
        bulk = db.collectionName.initializeOrderedBulkOp();
    }
    })
    // Add the rest in the queue
if (counter % 1000 != 0) bulk.execute();

Ciò riduce sostanzialmente la quantità di istruzioni delle operazioni inviate al server per l'invio solo una volta ogni 1000 operazioni in coda.