オートフォームが別のコレクション (Meteor.users) に挿入された後、ユーザー プロファイル配列に挿入しようとしています。
私の単純なスキーマ配列は次のように設定されています-(プロファイルスキーマ内)
listings: {
type: [String],
optional: true
},
"listings.$.id": {
type: String,
optional: true
}
そして、これはリストの挿入後に挿入する必要がある私のコレクションフックメソッドです。
//Add listing to user collection on submit
Listings.after.insert(function(userId, doc) {
console.log("STUFF");
Meteor.users.update({_id : userId},
{
$push :
{
'profile.listings.$.id' : this._id
}
}
私の目には、これはうまくいくはずです。フォームはコレクションフックなしで適切に挿入されますが、フォームを送信すると、JS コンソールに次のエラーが表示されます。
エラー: スキーマにないキーを除外した後、修飾子は空になりました(…)
console.log("stuff") がトリガーされます。エラーの前にコンソールに表示されます。
誰でもこれを行う方法について何か考えがありますか?
編集 - に切り替えることでいくつかのことを修正しました:
Listings.after.insert(function(userId, doc) {
console.log("STUFF" + userId + ' ' + this._id);
Meteor.users.update({_id: userId },
{
$set :
{
"profile.listings.$.id" : this._id
}
}
) });
$ 演算子のため、配列に挿入できません。