如何从异步结果中预先保存mongoose中的模型?

时间:2015-06-10 22:26:37

标签: node.js mongodb mongoose

下面是两个预保存挂钩。我不能让mongoose根据对另一个DB的异步调用的结果来更新模型。在保存时,我想运行neo查询,然后将结果存储在Mongoose模型中。

在这两种情况下,所有节点都有neoId === 999

schema.pre('save', function(next) {
  var self = this;
  this.neoId = 999;
  // Save the topic
  neo.query('MERGE (t:Topic { title: {title}, aliases: {aliases}, type: {type}, mongoId: {_id} }) RETURN id(t);', this, function(err, data) {
    self.neoId = data;
    console.log(self);
    next(err); });
});

Aysnc:

schema.pre('save', true, function(next, done) {
  var self = this;
  this.neoId = 999;
  // Save the topic
  neo.query('MERGE (t:Topic { title: {title}, aliases: {aliases}, type: {type}, mongoId: {_id} }) RETURN id(t);', this, function(err, data) {
    self.neoId = data;
    console.log(self);
    next(err);
    done(err);
  });
});

1 个答案:

答案 0 :(得分:0)

我将self.neoId分配给一个数组。出于某种原因,它保留了999值而不是错误。无论如何,这有效:

setTexture