MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

cách chuyển đổi chuỗi thành giá trị số trong mongodb

Tổng hợp MongoDB không được phép thay đổi kiểu dữ liệu hiện có của các trường nhất định. Trong trường hợp này, bạn nên tạo một số mã lập trình để chuyển đổi string thành int . Kiểm tra mã bên dưới

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

Nếu kích thước bộ sưu tập của bạn lớn hơn thì tập lệnh trên sẽ làm chậm hiệu suất, đối với perfomace mongo cung cấp hoạt động hàng loạt mongo, sử dụng hoạt động hàng loạt mongo cũng được cập nhật kiểu dữ liệu

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

Điều này về cơ bản làm giảm số lượng các câu lệnh hoạt động được gửi đến máy chủ để chỉ gửi một lần sau mỗi 1000 hoạt động được xếp hàng đợi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Đồ thị DBs so với DB tài liệu so với Triplestores

  2. Truy vấn MongoDB với biểu thức regex đối với ObjectId

  3. .NET thực tiễn tốt nhất cho kết nối MongoDB?

  4. Làm cách nào để thực hiện các bài kiểm tra junit sử dụng mongoDB được nhúng trong ứng dụng springboot?

  5. Xóa khóa / giá trị khỏi mục nhập MongoDB hiện có