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

Накарайте заявките за mongoose.js да се изпълняват синхронно

Ако използвате node.js, тогава трябва да използвате https://github.com/caolan/async

когато трябва да извличате данни от множество колекции, трябва да верижите заявките си няколко пъти.

Това ще направи вашия код сложен и труден за четене и без модулност. Използвайте async за създаване на модулност с помощта на mongodb и node.js

Примерен код от моя проект:

var async = require('async');

var createGlobalGroup = function(socket, data) {
    async.waterfall(
    [
    /**
     * this function is required to pass data recieved from client
     * @param  {Function} callback To pass data recieved from client
     */

    function(callback) {
        callback(null, socket, data);
    },
    /**
     * Step 1: Verify User
     */
    verifyUser,
    /**
     * Step 2: Check User Access Rights And Roles
     */
    checkUserAccessRightsAndRoles,
    /**
     * Step 3: Create Project
     */
    createNewGlobalGroup], function(err, result) {
        /**
         * function to be called when all functions in async array has been called
         */
        console.log('project created ....')
    });
}
verifyUser = function(socket, data, callback) {
//do your query
    /**
     * call next function in series
     * provide sufficient input to next function
     */
    callback(null, socket, data, {
        "isValidUser": true,
    });
}

checkUserAccessRightsAndRoles = function(socket, data, asyncObj, callback) {
    //do your query
    if(condition) {
        callback(null, socket, data, {
            roles: result,
            "isValidUser": asyncObj.isValidUser,
            "userId": asyncObj.userId,
        });
    } else {
    //no call back
    }
}

var createNewGlobalGroup = function(socket, data, asyncObj, callback) {
//wanna stop then no callback
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Клас 'MongoDB\Driver\Manager' не е намерен

  2. $lookup на няколко нива без $unwind?

  3. MongoDB countDocuments()

  4. Масово прехвърляне в MongoDB с помощта на mongoose

  5. 3 начина да изберете реда с минимална стойност в SQL