我正在开发一个新项目,第一次使用下面的架构收集大量消息 -
mongoose.model('Messages', {
owner: { type: Schema.Types.ObjectId, ref: 'User' },
messages: [{
with: { type: Schema.Types.ObjectId, ref: 'User' },
from: {id: { type: Schema.Types.ObjectId, ref: 'User' }, user: String},
to: [{id: { type: Schema.Types.ObjectId, ref: 'User' }, user: String}],
sent: {type: Date, default: Date.now},
message: String,
seen: {type: Boolean, default: false},
stared: {type: Boolean, default: false}
}]
})
我使用的大部分用过的查询都是查找用户(所有者)与其他用户(messages.with)的消息,其中发送日期(messages.sent)大于日期 -
Messages.findOne({owner: owner.id, "messages.with": user.id, messages.sent: {$gt: mydate}},{messages: 1, owner: 1}, function (err, doc){}..)
只有当我输入的日期更大(之后)消息时我才会收到该文件。
我在查询中使用的日期设置为新日期('2015-12-04T03:39:23.126Z'),因此我没有看到日期格式的任何问题
以及更新 -
Messages.update({owner: owner.id, "messages.with": user.id}, {$set:{"messages.$.seen": true}}, function(err, numEffected) {})
只是不起作用。
现在我用另一个功能检查数据,但只是不必要
请帮我搞清楚
感谢
答案 0 :(得分:0)
更新不起作用,我遇到了问题,当我使用findOneAndUpdate(条件,更新,回调)。然后它对我有用