sql >> Database >  >> NoSQL >> MongoDB

Mongoose.js-query's synchroon laten lopen

Als u node.js gebruikt, moet u https://github.com/caolan/async

gebruiken

wanneer u gegevens uit meerdere collecties moet ophalen, moet u uw zoekopdrachten meerdere keren koppelen.

Het maakt uw code complex en moeilijk leesbaar en geen modulariteit. Gebruik async om modulariteit te creëren met mongodb en node.js

Voorbeeldcode van mijn project:

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. MongoDB aggregaat vullen ontbrekende dagen

  2. MongoDB $pull array 2 niveau

  3. MongoDB automatiseren met SaltStack

  4. MongoDB $toDate