【发布时间】:2018-07-12 05:33:51
【问题描述】:
我有以下架构
UserSchema: Schema = new Schema({
username: String,
password: String,
chat: [{
lastSeen: { type: Date, default: Date.now },
room: {
type: Schema.Types.ObjectId, ref: 'ChatRoom'
}
}],
});
我想为UserSchema创建静态方法,以便通过给定room _id更新chat[i].lastSeen
UserSchema.statics.lastSeen =
function lastSeen(username: string, roomId: number, date: Date) {
this.update({
username: username,
chat: {
$elemMatch: {
'room._id': roomId
}
}},
{
$set: { 'chat.$[???].lastSeen': date}
});
}
我不知道如何通过他的元素room._id 获取聊天元素然后更新它。有什么帮助吗?
编辑
我的情况与建议的重复类似但不一样,因为那里的人知道所有ids,而我不知道chat._id。
【问题讨论】:
-
@JasonCust 我读了这个但做不到。你能给我一个具体案例的代码吗?
标签: javascript node.js mongodb typescript mongoose