2013-05-03 23 views
6

Pracuję nad jakimś zapytaniem z Mongoose, gdzie muszę pomijać i ograniczać podkatalogi, ale w tym samym zapytaniu chcę zwiększyć pewne pole w dokumencie. Obecnie moje zapytanie zbudowane jest z łańcuchów, ponieważ mam duży problem, gdy próbowałem to zrobić tylko z opcjami. To jest to, co mam:Mongoose - Przyrost z findOne

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); } }); 

Chciałbym zwiększyć złożone „widoki” na 1, gdy wywołanie tej kwerendy, ale jak powiedziałem, próbowałem wiele rzeczy i to po prostu nie działa.

Odpowiedz

14

Możesz użyć findOneAndUpdate, aby zmodyfikować dokument, a także go pobrać.

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); 
    } 
    }); 
+6

Brakuje wspornik po $ inc – Lion789

+1

uwaga: fieldToIncrement nadal nie zwiększy w zmiennych db_res – tuananh

+1

przepraszam za noob-Iness, ale skąd $ inc pochodzi? Nie jestem pewien, czy rozumiem tę część? – trainoasis