.save() 不适用于 Sails

.save() doesn't work on Sails

我想向我的一项服务中的所有用户广播通知,通知是用户模型的数组属性。 所以我应该将新通知的对象推送到数据库中的每个用户通知数组。 这是我的代码:

broadcastNotif : function (notif) {
    return new Promise(function (resolve, reject) {
      User.find().exec(function (err, users) {
        if (err) return reject(err);
        else {
          while (users.length>0) {
            var user = users.pop();
            if (user.notifications==undefined)
              user.notifications=[];
            user.notifications.push({
              type : notif.type,
              title : notif.title,
              link : notif.link,
              date : notif.date
            });
            sails.log(user);
            user.save(function (err) {
              if (err) return reject(err);
            })
          }
          return resolve();
        }
      })
    })
  }

sails.log(user) 在控制台中打印正确的对象但是当我检查我的 mongo 数据库时发现那里没有保存任何东西,它们都没有改变。

user.save() 怎么了?!

不幸的是,我发现 sails 在模型中不支持像这样的数组属性:

notifications : [
  {
    type : {
      type : 'string',
      defaultsTo : 'general'
    },
    title : {
      type : 'string',
      required : true
    },
    link : {
      type : 'string'
    },
    date : {
      type : 'datetime',
      defaultsTo: new Date().toISOString()
    }
  }
]

我被迫将我的通知属性更改为:

notifications : {
  type : 'array'
}

并手动检查和验证所有内容:(