mongodb-wrapper
Version:
Exactly-like-the-console wrapper for node-mongodb-native
90 lines (74 loc) • 1.87 kB
text/coffeescript
sortSyntax = require "./sortSyntax"
{EventEmitter} = require 'events'
class Cursor extends EventEmitter
constructor: (, , ) ->
= []
if .isOpen()
= .rawCollection()
else
.once "error", (err) =>
= err
"error", err
.once "ready", =>
= .rawCollection()
"ready"
resolve: (cb) ->
if
cb
else if
cb
else
"ready", =>
cb
"error", cb
_resolve: (cb) ->
if
cb null,
else
cursor = .find ,
for item in
cursor = cursor[item[0]].apply cursor, item[1]
= cursor
cb null,
limit: (limit) ->
.push ["limit", [limit]]
return @
skip: (skip) ->
.push ["skip", [skip]]
return @
sort: (fields) ->
.push ["sort", [sortSyntax(fields)]]
return @
one: (cb) ->
(err, cursor) =>
return cb err if err
cursor.nextObject cb
return @
next: (cb) ->
(err, cursor) =>
return cb err if err
cursor.nextObject cb
return @
each: (cb) ->
(err, cursor) =>
return cb err if err
cursor.each cb
return @
explain: (cb) ->
(err, cursor) =>
return cb err if err
cursor.explain cb
return @
toArray: (cb) ->
(err, cursor) =>
return cb err if err
cursor.toArray cb
return @
count: (cb) ->
(err, cursor) =>
return cb err if err
cursor.count cb
return @
getRawCursor: (cb) ->
cb
module.exports = Cursor