model.update无法在Mongo中工作,多重设置为true

时间:2017-10-20 12:59:47

标签: mongodb mongoose

我不知道为什么我的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 }

我在这里缺少什么?对我来说这看起来很简单,而且我的想法有点失落。

提前致谢! 砂眼

0 个答案:

没有答案