1

私はコレクション内の配列を更新しようとしました

Configs.update({_id:this.parent._id, "cles.cle":this.context.cle},
{$set: {"cles.$.alias": $(e.target).val()}});

しかし、私はこのエラーが発生しました

キャッチされていないエラー: 許可されていません。信頼されていないコードは、ID によってのみドキュメントを更新できます。[403]

配列、クライアント側 (minimongo) のデータを更新するにはどうすればよいですか?

4

2 に答える 2

1

クライアントを呼び出すと、セレクターはフィールドのみでcollection.updateドキュメントを指摘する場合があります。_idしたがって、次のようなことを行う必要がありますcollection.update({_id: "your id"}, <updates>})(または、代替_idセレクターを使用して: collection.update("your id", <updates>}))。

于 2015-03-21T08:10:36.757 に答える
1

わかりました、ようやくあなたの質問の根拠が理解できたと思います。Meteor は、個々のレコードの更新のみを許可するというポリシーを回避する試みとして、選択基準の配列要素のサブセレクションを扱っているようです。これは Meteor のバグのように感じます。

考えられる回避策:

  1. var cles = Configs.findOne({_id:this.parent._id}).cles;
  2. 必要に応じてcles配列を変更します
  3. 配列全体をその場で更新するConfigs.update({_id:this.parent._id},{$set: {cles: cles});

不器用な感じ。別の解決策は、サーバー側でこれを行うためのサーバー メソッドを作成することです。これは、配列が大きくなる可能性がある場合に適しています。

于 2015-03-24T18:31:32.223 に答える