我不知道为什么我的model.update不起作用。我认为一切看起来都很正确,但显然我错过了一些东西。
我要做的是查询用户表,然后将其通知'subArray的读取值设置为 true (如果是的假即可。那很简单。
我的数据如下:
{
"profileID": "123",
"notifications": [
{
"read": false,
"date": "2013-10-20 18:49:29",
},
{
"read": false,
"date": "2012-10-20 18:49:29",
},
{
"read": false,
"date": "2015-10-20 18:49:29",
},
{
"read": false,
"date": "2017-09-20 18:49:29",
},
{
"read": false,
"date": "2017-11-20 18:49:29",
},
{
"read": true,
"date": "2016-10-20 18:49:29",
},
],
}
我的代码如下:
userModel.update(
{profileID: 123},
{$set:{"notifications.$[elem].read": true}},
{
"multi": true,
"arrayFilters": [{ "notifications.$[elem].read": false }]
},
function(err, data) {
if (err){
console.log(err);
} else {
console.log(data);
}
}
);
我没有收到错误,只是得到了这个:
{ ok: 0, n: 0, nModified: 0 }
我在这里缺少什么?对我来说这看起来很简单,而且我的想法有点失落。
提前致谢! 砂眼