MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да извършвам заявка от Mongoose pre hook в приложение Node.js / Express?

За съжаление, той не е документиран много добре (не се споменава в документите на API на Document.js), но Документите имат достъп до своите модели чрез constructor поле – използвам го през цялото време за регистриране на неща от плъгини, което ми дава достъп до кой модел са свързани.

module.exports = function readonly(schema, options) {
    schema.pre('save', function(next) {
        console.log(this.constructor.modelName + " is running the pre-save hook.");

        // some other code here ...

        next();
    });
});

За вашата ситуация трябва да можете да направите:

IdeaSchema.pre('save', function(next) {
    var idea = this;

    function generate_slug(text) {
        return text.toLowerCase().replace(/[^\w ]+/g,'').replace(/ +/g,'-').trim();
    };

    idea.slug = generate_slug(idea.title);

    // this now works
    this.constructor.findOne({slug: idea.slug}, function(err, doc) {
        console.log(err);
        console.log(doc);
        next(err, doc);
    });

    //console.log(idea);
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. как да $project ObjectId към низова стойност в mongodb агрегат?

  2. свързване към локален mongodb от докер контейнер

  3. Използване на findOne в mongodb за получаване на елемент с максимален идентификатор

  4. Mongoose, намерете, върнете конкретни свойства

  5. Как да приложим has_many :чрез връзки с Mongoid и mongodb?