2016-03-28 18 views
2

NodeJS kullanarak, telemName çizelgesini yeniden adlandırır ve yeni veriler alırsam bu kod kesinlikle düzgün çalışır. Her zaman vardır. Ancak, koleksiyon şimdi gedik var Toplam Sonuçlar: 1649272MongoDB Yüksek hacimli veri üzerinde sırala

db.collection(telemName).find(options).sort({ "d" : 1 }).toArray(function (err, telemetryData) { 
    console.log(telemetryData.length, "data points to insert"); 
    var newlastInsert = telemetryData[telemetryData.length - 1].d; 
    callback(null, db, telemetryData, newlastInsert) 
}); 

neden sıralama ergo bu hatayı veren, başarısız oluyor: Açıkçası

TypeError: Cannot read property 'length' of undefined

hiçbir veri iade ediliyor demektir ve elimden % 100, üzerinde çalıştığım alanın { "d" : 1 } olduğunu ve hiçbir değişiklik yapmadan bugüne kadar çalıştığını garanti ediyorum.

Büyük veri kümeleri bir milyonun üzerinde mi yoksa Mongo sıralamalarını mı kırıyor? Uygulamayı yeni çalıştırırsam, iyi çalışır. Masa büyür, program çalışır.

enter image description here

+0

Hangi mongodb sürümünü kullanıyorsunuz? –

+0

3.2.1 –

+0

gibi görünüyor Bu snippit'i dokümanlardan okudunuz mu? https://docs.mongodb.org/manual/reference/method/cursor.sort/#restrictions... veritabanı günlüklerindeki hataları görüyor musunuz? –

cevap

1

göre this için:

When unable to obtain the sort order from an index, MongoDB will sort the results in memory, which requires that the result set being sorted is less than 32 megabytes.

Devam edin ve sıralama (örnek) için bir dizin oluşturmak

Başvuru için

, burada düz benim veritabanından örnek bir veri kümesi ise:

db.records.createIndex({ a: 1 }) 

Veya ekleyin a limit()

İlgili konular