2015-12-04 53 views
0

我工作的一個新項目,第一次與下面的架構信息的巨大集合 -MongoDB中查詢發現或陣列更新不能正常工作

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

更新不工作,我所面臨的問題,當我使用findOneAndUpdate(條件,更新,回調)。那麼它爲我工作

+0

我試過這個,以及同樣的問題。不管怎麼說,還是要謝謝你 – Itzhak