sql >> Databáze >  >> NoSQL >> MongoDB

Aby se dotazy mongoose.js spouštěly synchronně

Pokud používáte node.js, měli byste použít https://github.com/caolan/async

když musíte načíst data z více kolekcí, musíte své dotazy zřetězit vícekrát.

Díky tomu bude váš kód složitý a obtížně čitelný a nebude modularita. Použijte async k vytvoření modularity pomocí mongodb a node.js

Příklad kódu z mého projektu:

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. Jak provádět operace aktualizace v GridFS (pomocí Javy)?

  2. Regex pro MongoDB ObjectID

  3. Jak vytvořit vnořený index v MongoDB?

  4. Hotfix Mongodb KB2731284