Bir CouchDB veritabanım var (proje zaman kartıyla ilgili verileri tuttuğunu söyleyebiliriz: proje kodu, kişi, kişinin iş unvanı, görev, tarih, çalışılan saat, fatura oranı, vb.). Projenin özet görünümlerini güne ya da şahsen ya da göreve ya da başlığa ya da herhangi bir özel özniteliğe göre oluşturmak istiyorum.CouchDB'de, bir ad hoc türünde bir sorguyu taklit etmek için çoklu çıkışlı bir harita işlevi Couch boyutumu patlatır mı?
Sürdürülebilir olmayan bir yola gidiyorum ve veritabanı boyutumun olması gerekenden çok daha büyük olabileceğini düşünüyorum.
Her bir özellik için bir kez, her bir belgeyi bir kez gönderen bir harita işleviyle bir görünüm oluşturdum. Bu işe yarıyor. Ama bu hiç durmanız gereken bir bitiş noktasına ulaşıyor mu?
emit([doc.project, 'day', doc.day], doc);
emit([doc.project, 'month', doc.month], doc);
emit([doc.project, 'person', doc.person], doc);
emit([doc.project, 'job title', doc.persons-job-title], doc);
emit([doc.project, 'task', doc.task], doc);
Sonra hep [projenin] bir başlangıç / bitiş anahtarla sorgulamak [proje, {}]
benim veritabanı sonunda sadece alacak kadar büyük
:Birden yaydığı var Herhangi bir yeni veri eklemenin pahalıya mal olması için? Multi-emit() yapmaya çalıştığım şeyi yapmak için tercih edilen yöntem mi? Orada daha iyi/farklı bir yolu var mı?
Emit'in belgeye dayalı olarak dinamik olarak oluşturulmasını sağlamak, devasa bir belge olması ve büyük depolama gereksinimleri oluşturması durumunda sorun olmasını ister misiniz?
Temel olarak, çılgınlığı durduracağım bir nokta var mı? Her şeyden