MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Paginierung von Unterdokumenten in Mongoose

Wenn es alles finden oder sich auf die Anzeige bezieht, würde die Paginierung etwa wie der folgende Code aussehen. Der Code ist nur ein Beispiel:

findAll: async function (req, res) {
    var responseObj = {};
    try {
        var responseObj = {};
        var queryArray = [];
        var finalAnswer = [];

        var loggedinUser = mongoose.Types.ObjectId(req.user.id)
        var auser = await user.findOne({ _id: loggedinUser })
        var places = auser.placesUnderIt;
        for (i of places) {
             var singlePlaceId = mongoose.Types.ObjectId(i);
             var singlePlaceData = await place.findOne({ _id: singlePlaceId })
             var list = singlePlaceData.controlledStore;
                    for (k of list) {
                        finalAnswer.push(k);
                    }

                }
             queryArray.push({ _id: { $in: finalAnswer} });
        var query = {
                $and: queryArray
            }

        responseObj.count = await store.countDocuments(query);
        responseObj.data = await store.find(query)
            .populate('ownerId', ["firstName", "lastName", "phoneNumber", "email", "personalDetails"])
            .populate('businesses')
            .limit(parseInt(req.query.limit))
            .skip(parseInt(req.query.skip));

        var data = responseObj.data;
        return res.send(responseObj);
    } catch (err) {
        return res.send('Error');
    }
}