我想在我的某个服务中向所有用户广播通知,通知是用户模型的数组属性。 所以我应该将新通知的对象推送到数据库中的每个用户通知数组。 这是我的代码:
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()
出了什么问题?!
答案 0 :(得分:0)
不幸的是我发现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'
}
并手动检查并验证所有内容:(