实现mongoose多用户房间未读状态的最佳方式

时间:2014-01-24 16:45:44

标签: node.js mongodb mongoose

我有Room这样的模型:

var ReadSchema = new Schema({
  name: String,
  admins: [{
    type: Schema.ObjectId,
    ref: 'User',
  }],
  users: [{
    type: Schema.ObjectId,
    ref: 'User',
  }],
});

现在我需要为这个房间里的每个用户实现未读消息计数。我决定为每个用户存储UserId / LatestReadedMessageId。我怎么能这样做?

它将UserId视为关键对象,将MessageId视为值:

var RoomSchema = new Schema({
  name: String,
  admins: [{
    type: Schema.ObjectId,
    ref: 'User',
  }],
  users: [{
    type: Schema.ObjectId,
    ref: 'User',
  }],
  reads: [{
    user: {
      type: Schema.ObjectId,
      ref: 'User',
    },
    latest: Date
  }],
});

但我认为这不是最好的主意。

会有什么建议?谢谢

0 个答案:

没有答案