I have a record in MongoDB in the following format:
{
attachment: 'xxxxxxx',
createdAt: TueAug04201514: 52: 23GMT+0400(GST),
text: 'xxxxxxx',
sender: '55784247c95c59cc746904e1',
status: [
{
user: '5589464675fc0892757d170e',
is_read: 0
},
{
user: '55a4a39d5c0bf23d21e6c485',
is_read: 0
},
{
user: '55a4a38e5c0bf23d21e6c483',
is_read: 0
},
{
is_read: 0,
user: '55784247c95c59cc746904e1'
}
],
thread: '55c0946b80320adb3fd04d0e',
updatedAt: TueAug04201515: 45: 55GMT+0400(GST),
id: '55c09967708b73184558fbc8'
}
I would like to update is_read inside status array. Here is what I have tried.
Messages.update({
thread: threadIds,
status: { $elemMatch: { user: user.id, is_read: 0 } }
},
{ $set: { "status.$.is_read": 1 } })
But same query runs really good in mongodb shell. Can anyone guide me if I am missing something? By the way I am running this query in SailsJS that uses Waterline ORM.
Messagemodel and itsstatusattribute?relationare you referring.statusis an attribute ofMessagemodel with typearray