MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

как да конвертирате низ в числови стойности в mongodb

Агрегацията на MongoDB не позволява да променя съществуващия тип данни на дадени полета. В този случай трябва да създадете някакъв програмен код за преобразуване на string към int . Проверете кода по-долу

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

Ако размерът на вашите колекции е по-голям от горния скрипт ще забави производителността, за perfomace mongo осигурете групови операции mongo, като използвате групови операции mongo и актуализиран тип данни

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();

Това основно намалява количеството оператори, изпратени до сървъра, до изпращане само веднъж на всеки 1000 операции на опашка.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $isoWeek

  2. Използване на .sort с PyMongo

  3. Поддържане отворена връзка с база данни MongoDB

  4. Как да се присъедините към множество колекции с $lookup в mongodb

  5. Журналирането на MongoDB гарантира ли издръжливост?