Skip to content

Commit efc3334

Browse files
committed
Fixed pagination.
1 parent 3337764 commit efc3334

1 file changed

Lines changed: 11 additions & 12 deletions

File tree

nosql.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,10 @@ Database.prototype.find = function(view) {
160160
var builder = new DatabaseBuilder();
161161

162162
if (view) {
163-
self.pending_reader_view.push({ builder: builder, count: 0, view: view });
163+
self.pending_reader_view.push({ builder: builder, count: 0, counter: 0, view: view });
164164
setImmediate(() => self.next(6));
165165
} else {
166-
self.pending_reader.push({ builder: builder, count: 0, view: view });
166+
self.pending_reader.push({ builder: builder, count: 0, counter: 0, view: view });
167167
setImmediate(() => self.next(4));
168168
}
169169

@@ -207,11 +207,10 @@ Database.prototype.top = function(max, view) {
207207
builder.take(max);
208208

209209
if (view) {
210-
self.pending_reader_view.push({ builder: builder, count: 0, view: view });
210+
self.pending_reader_view.push({ builder: builder, count: 0, counter: 0, view: view });
211211
setImmediate(() => self.next(6));
212-
213212
} else {
214-
self.pending_reader.push({ builder: builder, count: 0, view: view });
213+
self.pending_reader.push({ builder: builder, count: 0, counter: 0, view: view });
215214
setImmediate(() => self.next(4));
216215
}
217216

@@ -513,12 +512,12 @@ Database.prototype.$reader2 = function(filename, items, callback) {
513512
item.count++;
514513

515514
if (!builder.$sort) {
516-
if (builder.$skip && builder.$skip > index)
517-
continue;
518-
if (builder.$take && builder.$take < item.count)
515+
if ((builder.$skip && builder.$skip > index) || (builder.$take && builder.$take <= item.counter))
519516
continue;
520517
}
521518

519+
item.counter++;
520+
522521
if (item.type)
523522
continue;
524523

@@ -607,7 +606,7 @@ Database.prototype.$views = function() {
607606
var writers = [];
608607

609608
for (var i = 0; i < length; i++)
610-
response.push({ response: [], name: views[i], builder: self.views[views[i]], count: 0 });
609+
response.push({ response: [], name: views[i], builder: self.views[views[i]], count: 0, counter: 0 });
611610

612611
var reader = Fs.createReadStream(self.filename);
613612
reader.on('data', framework_utils.streamer(NEWLINE, function(value, index) {
@@ -622,12 +621,12 @@ Database.prototype.$views = function() {
622621
response[j].count++;
623622

624623
if (!item.$sort) {
625-
if (item.$skip && item.$skip > index)
626-
continue;
627-
if (item.$take && item.$take < response[j].count)
624+
if ((item.$skip && item.$skip > index) || (item.$take && item.$take < response[j].counter))
628625
continue;
629626
}
630627

628+
response[j].counter++;
629+
631630
if (!item.type)
632631
response[j].response.push(output);
633632
}

0 commit comments

Comments
 (0)