Ön kancadaki sayıları güncelleştirmeye çalışıyorum. Sorun, bilinmeyen bir nedenle, findOneAndUpdate
kancasının, anlayabildiğim kadarıyla belgeye erişememesidir.Mongoose pre findOneAndUpdate kanca sorunları
source.pre('findOneAndUpdate', function (next) {
console.log('------------->>>>>> findOneAndUpdate: ');
this.objects = this.objects || [];
this.people = this.people || [];
this.events = this.events || [];
this.objectCount = this.objects.length;
this.peopleCount = this.people.length;
this.eventCount = this.events.length;
next();
});
Ama nedense kanca içinde this
yaklaşık işe yaramaz görünüyor belge, onun bir sorgu nesnesi değildir:
Bunu yapmak istiyorum.
Neyi eksik? FindOneAndUpdate'deki sayımları güncellemek için ön kancayı nasıl kullanırım?
Sayımlar, bu nedenle tüm listeyi tam olarak döndürdüğümde ayrıntıları bulmamaya çalıştığım gibi, 'bul' ile tüm öğelerin listesini döndürebilir ve dizileri hariç tutabilirim. Peki sayıları otomatik olarak nasıl güncellerim? Bana göre, belgeye erişimi olmayan bir ön kanca oldukça anlamsız. – Justin808
@ Justin808 Dizi boyutlarını döndürmek istiyorsanız, [bir toplama] kullanmayı düşünün (http://docs.mongodb.org/manual/reference/operator/aggregation/size/). Sayıları güncellemek isterseniz, öncelikle veritabanından tüm belgeyi geri almanız, değerleri güncellemeniz, sayımları güncellemeniz (ya da bunun için _document_ middleware'i kullanmanız gerekir, 'pre (' save ')) 'gibi) ve kaydedin. veritabanına geri dönün. Açıklanan nedenlerle bir güncelleme yapamazsınız. – robertklep
Sanırım '$ size' şeyini anlamıyorum. Şu anda bir SourceModel.find ({treeId: treeId}, '-objects -people -events', geri arama) yapıyorum. Nesnelerin, 'insanların 've' olayların 'dizilerinin boyutlarını döndürmek için oraya' $ size' öğesini nereye ekleyebilirim? – Justin808