MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để truy vấn từ trong Mongoose pre hook trong ứng dụng Node.js / Express?

Thật không may, nó không được ghi chép đầy đủ (không đề cập đến nó trong tài liệu API Document.js), nhưng Documents có quyền truy cập vào các mô hình của chúng thông qua constructor field - Tôi sử dụng nó mọi lúc để ghi lại mọi thứ từ các plugin, điều này cho phép tôi truy cập vào mô hình mà chúng được gắn vào.

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();
    });
});

Đối với tình huống của bạn, bạn có thể làm:

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. Các chức năng tùy chỉnh được tính toán các cột chiếu mongodb

  2. MongoDB-as-a-Service trong Tài khoản Amazon AWS của Chính bạn

  3. Khắc phục sự cố với Cụm phân mảnh MongoDB

  4. Nhận _id của một tài liệu được chèn trong MongoDB?

  5. MongoDB sắp xếp tài liệu theo các phần tử mảng