MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB CursorNotFound Error pada collection.find() untuk beberapa ratus catatan kecil

Anda dapat mencoba 3 hal ini:

a) Setel kursor ke false

db.collection.find().noCursorTimeout();

Anda harus menutup kursor di beberapa titik dengan cursor.close();

b) Atau kurangi ukuran batch

db.inventory.find().batchSize(10);

c) Coba lagi saat kursor kedaluwarsa:

let processed = 0;
let updated = 0;

while(true) {
    const cursor = db.snapshots.find().sort({ _id: 1 }).skip(processed);

    try {
        while (cursor.hasNext()) {
            const doc = cursor.next();

            ++processed;

            if (doc.stream && doc.roundedDate && !doc.sid) {
                db.snapshots.update({
                    _id: doc._id
                }, { $set: {
                    sid: `${ doc.stream.valueOf() }-${ doc.roundedDate }`
                }});

                ++updated;
            } 
        }

        break; // Done processing all, exit outer loop
    } catch (err) {
        if (err.code !== 43) {
            // Something else than a timeout went wrong. Abort loop.

            throw err;
        }
    }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cara menjalankan perintah mongo admin dari java

  2. Rails 4/Device/MongoDB:Parameter yang tidak diizinkan menggunakan properti khusus dan parameter kuat

  3. MongoDB Cara terbaik untuk memasangkan dan menghapus entri database berurutan

  4. Apakah fungsi luwak yang berbeda mendukung regex dalam kueri?

  5. Pembaruan bersamaan dari elemen array yang merupakan dokumen yang disematkan di MongoDB