code: 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);
              }
          }
docs: read the change message, since time