试图让这个与流星一起运行,我做错了什么?

时间:2014-12-16 13:25:40

标签: node.js mongodb search meteor mongodb-query

我正在尝试调整全文搜索here以使用meteor。我将mongodb网址导出到运行2.6.1的网址。使全文搜索兼容,但我收到了这些错误server/search.js:2:15: Unexpected token .server/search.js:42:7: Unexpected token )。我错过了什么?

server.js

Meteor.methods({
    Meteor.ensureIndex("Posts", {
      smaintext: "text"
    }, function(err, indexname) {
      assert.equal(null, err);
    });
  )
};


Meteor.methods({
    feedupdate: function(req) {
      Posts.find({
        "$text": {
          "$search": req
        }
      }, {
        smaintext: 1,
        submitted: 1,
        _id: 1,
        Posts: {
          $meta: "Posts"
        }
      }, {
        sort: {
          textScore: {
            $meta: "posts"
          }
        }
      }).toArray(function(err, items) {
        for (e=0;e<101;e++) {
        Meteor.users.update({
          "_id": this.userId
        }, {
          "$addToSet": {
            "profile.search": item[e]._id
          }
        });
     }
      })
    }
  )
};

1 个答案:

答案 0 :(得分:1)

这是方法的错误定义

Meteor.methods({
Meteor.ensureIndex("Posts", {
  smaintext: "text"
}, function(err, indexname) {
  assert.equal(null, err);
});

) };

您必须指定方法名称(http://docs.meteor.com/#/basic/Meteor-methods) 所以它会是这样的 Meteor.methods({ myMethodName : function() { Meteor.ensureIndex("Posts", { smaintext: "text" }, function(err, indexname) { assert.equal(null, err); }); } });

在第二种方法中存在半定长和父母问题。 正确的版本是

Meteor.methods({
feedupdate: function(req) {
  Posts.find({
    "$text": {
      "$search": req
    }
  }, {
    smaintext: 1,
    submitted: 1,
    _id: 1,
    Posts: {
      $meta: "Posts"
    }
  }, {
    sort: {
      textScore: {
        $meta: "posts"
      }
    }
  }).toArray(function(err, items) {
    for (e=0;e<101;e++) {
    Meteor.users.update({
      "_id": this.userId
    }, {
      "$addToSet": {
        "profile.search": item[e]._id
      }
    });
 }
  });
}

});