如何分页在mongoose的_id数组?

目前,我有这种混乱,这是分层架构中的一系列项目。

所以在技术上,每个用户都有一个购物车,我想分类购物车的物品。 例如,假设购物车有18个物品存储。 我想将购物车分页到只有5个项目。

这是模式

const UserSchema = new Schema({ email: { type: String, unique: true, lowercase: true}, cart: [{ type: Schema.Types.ObjectId, ref: 'Product' }], }); 

这是路线

我目前的做法

 router.get('/cart', (req, res, next) => { User.findOne({ _id: req.user._id }) .populate({ path: 'cart', options: { limit: 5 } }) .exec((err, user) => { res.render('order/cart', { user: user }); }); }); 

我现在的做法肯定会把18个项目的项目限制为5个项目,但是这会产生一个新的问题,现在我不能计算购物车的总价格,因为它只限于每个请求5个项目。

在这里输入图像说明

你可以在客户端进行分页,这样你就可以从服务器获得所有的产品,但在客户端只显示五个。 它将允许您计算所有数据的平均值或其他计算值。 也可以让你筛选和分类所有的数据。

如果你有大量的数据,客户端第一次从服务器上加载数据将需要很长时间,所以对于大量数据来说,这可能是不正确的,在这种情况下,你可能想要加载数据块,也许在后台,并使用服务器进行计算,也许在后台进行优化。

你可以find优点和缺点的服务器/客户端pagentaion https://dzone.com/articles/pagination-server-side-or-clie