使用Mongoose和node.js的最佳分类策略

我已经定义了一个包含3个types为Date:created_on,updated_on和date的字段的mongoose文档。 只有后者被用户修改,而其余的被自动设置在后端。

var NoteSchema = new Schema({ user: { type: String, default: 'anonymous', trim: true }, comments: { type: String, default: '', trim: true }, date: {type: Date, default: function (){ return moment.utc() }, required: true}, created_on: {type: Date, default: function (){ return moment.utc() } }, updated_on: {type: Date, default: function (){ return moment.utc() } }, deleted: {type: Boolean, default: false } }); 

这些数据正在被移动应用程序使用,并恢复数据。 后端正在使用此sorting选项返回数据:

  options.sort = { date: -1, created_on: -1 } 

目前只有很less的文件,因为它不是在生产,但我想知道这个sorting策略是否符合应用程序在生产时的要求。 唯一的要求是向用户显示他们的最新笔记,但考虑到他应该能够浏览他的笔记(最多6个月)。 这与Facebook应用显示内容更新的方式类似。 该应用程序加载最新的X文件,如果用户想看到较旧的,他必须滚动和滚动…

我正在考虑实施一个分页系统,避免由于大量跳过时的性能问题而使用“跳过”。 也许一个好的策略是使用.limit(MAX_DOCUMENTS),以_id:-1sorting,并以这种方式请求文档:

 Note.find({_id: {$lt: older_id }}).sort({_id: -1}).limit(MAX_DOCUMENTS); 

通过这种方式,客户端(应用程序)应该以不同的方式执行第一个查询,接下来就是前一个查询。

例如:

  1. 第一个查询: Note.find().sort({_id: -1}).limit(10);

  2. 保持旧的_id (又名10th_id)

  3. 下一个查询:

    注意({_ id:{$ lt:id_previously_kept}})。sort({_ id:-1})。limit(10);

有关于此的任何build议?

Interesting Posts