sql >> データベース >  >> NoSQL >> MongoDB

Node.js / ExpressアプリのMongooseプリフック内からクエリを実行するにはどうすればよいですか?

    残念ながら、これは十分に文書化されていません(Document.js APIドキュメントには記載されていません)が、ドキュメントは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. MongoDBでHibernate

    2. いつ実際に使用するのか、Redis lua?

    3. Gorillaセッションのカスタムバックエンドを使用する利点は何ですか?

    4. MongoDBからのランダムレコード