2013-05-03 27 views
6

Mongoose ile bazı sorgularda çalışıyorum; burada alt belgeleri atlamam ve sınırlamam gerekiyor, ancak aynı sorguda belgede bazı alanları artırmak istiyorum. Şu anda benim sorgulama zincirleme ile oluşturulmuş, çünkü sadece seçenekleri ile yapmaya çalıştığımda çok fazla sorun var.Mongoose - findOne ile artış

Model.findOne({ shorten_id: id }).select('title content comments views').slice('comments', [0, 10]).exec(function(err, db_res) { if (err) { throw err; } else { console.log(db_res); } }); 

ben bu sorguyu çağrılırken 1 için açılan görüşlerini 'artırmak istiyoruz ama dediğim gibi ben bir çok şey denedik ve sadece işe yaramadı: Bu aldığım şeydir.

cevap

14

Ayrıca bir belge alırken bir belgeyi değiştirmek için findOneAndUpdate'u kullanabilirsiniz.

Model.findOneAndUpdate({ shorten_id: id }, { $inc: { fieldToIncrement: 1 }) 
    .select('title content comments views') 
    .slice('comments', [0, 10]) 
    .exec(function(err, db_res) { 
    if (err) { 
     throw err; 
    } 
    else { 
     console.log(db_res); 
    } 
    }); 
Sen $ inc
+6

dikkat ediniz: fieldToIncrement hala çaylak-iness için üzgünüm değişken db_res – Lion789

+1

sonra ayraç eksik – tuananh

+1

artış değil, ama nerede $ inc geliyor? Bu kısmı anladığımdan emin değilim? – trainoasis