server/mongodb_rest.js
function(entity, time, callback) {
            var collection = new mongodb.Collection(this.db, "__msg__" + entity);
            time = parseInt(time);
            if (time || time === 0) {
                collection.ensureIndex(
                    { time: 1, id: 1 },
                    { unique:true, background:true, w:1 },
                    function(err, indexName) {
                        var cursor = collection.find({ time: { $gt: time } });
                        var id, lastMsg;
                        cursor.sort([['id', 1], ['time', 1]]).each(function(err, msg) {
                            if (msg && msg.id) {
                                // the same id, merge document
                                if (id && id === msg.id) {
                                    if (lastMsg) {
                                        msg = rest.mergeMessage(lastMsg, msg);
                                    }
                                } else if (lastMsg) {
                                    // send the document to the client
                                    callback(lastMsg);
                                }
                                lastMsg = msg;
                                id = msg.id;
                            } else {
                                if (lastMsg) {
                                    callback(lastMsg);
                                }
                                callback(null);
                            }
                        });
                    }
                );
            } else {
                callback(null);
            }
        }
function(entity, time, callback) {
            var collection = new mongodb.Collection(this.db, "__msg__" + entity);
            time = parseInt(time);
            if (time || time === 0) {
                collection.ensureIndex(
                    { time: 1, id: 1 },
                    { unique:true, background:true, w:1 },
                    function(err, indexName) {
                        var cursor = collection.find({ time: { $gt: time } });
                        var id, lastMsg;
                        cursor.sort([['id', 1], ['time', 1]]).each(function(err, msg) {
                            if (msg && msg.id) {
                                // the same id, merge document
                                if (id && id === msg.id) {
                                    if (lastMsg) {
                                        msg = rest.mergeMessage(lastMsg, msg);
                                    }
                                } else if (lastMsg) {
                                    // send the document to the client
                                    callback(lastMsg);
                                }
                                lastMsg = msg;
                                id = msg.id;
                            } else {
                                if (lastMsg) {
                                    callback(lastMsg);
                                }
                                callback(null);
                            }
                        });
                    }
                );
            } else {
                callback(null);
            }
        }
function ( entity , time , callback ) { var collection = new mongodb . Collection ( this . db , "__msg__" + entity ) ; time = parseInt ( time ) ; if ( time || time === 0 ) { collection . ensureIndex ( { time : 1 , id : 1 } , { unique : true , background : true , w : 1 } , function ( err , indexName ) { var cursor = collection . find ( { time : { $gt : time } } ) ; var id , lastMsg ; cursor . sort ( [ [ 'id' , 1 ] , [ 'time' , 1 ] ] ) . each ( function ( err , msg ) { if ( msg && msg . id ) { // the same id, merge document if ( id && id === msg . id ) { if ( lastMsg ) { msg = rest . mergeMessage ( lastMsg , msg ) ; } } else if ( lastMsg ) { // send the document to the client callback ( lastMsg ) ; } lastMsg = msg ; id = msg . id ; } else { if ( lastMsg ) { callback ( lastMsg ) ; } callback ( null ) ; } } ) ; } ) ; } else { callback ( null ) ; } }
read the change message, since time
read the change message since time