0

cursor.observe({added})挿入されたフィールドに基づいて新しいフィールドを計算するために使用しようとしています。Docs.update()で観察する場合、追加されたドキュメントのブレークで使用するとadded、Meteor は内破する前にループで停止するようです。ただし、更新は機能しchangedます。

なんで?そして、挿入時に新しいフィールドを計算するにはどうすればよいですか?

コメントを参照してください:

Meteor.startup(function () {
  var cursor = Docs.find();
  var handle = cursor.observe({
    added: function (doc) {
      // This breaks Meteor. Meteor gets stuck in a loop and breaks.
      Docs.update(
        doc._id,
        {$set: {metric: getCalculatedMetric( doc.x, doc.y )}}
      );
      // However, this would log once as expected.
      // console.log(doc.name + ' has been added.');
    },

    changed: function (doc, oldDoc) {
      // This works as expected, updates myField.
      Docs.update(
        doc._id,
        {$set: {metric: getCalculatedMetric( doc.x, doc.y )}}
      );
    }
  });
});
4

1 に答える 1