【发布时间】:2017-12-06 06:36:27
【问题描述】:
目前,我有一个困惑,那就是对 Schema 中的一组项目进行分页。
所以从技术上讲,每个用户都有一个购物车,我想对购物车的商品进行分页。例如,假设购物车存储了 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 件商品。
【问题讨论】:
-
与
$slice。.select({ 'cart': { '$slice': [skip,limit] } })。自 MongoDB 首次发布以来,它就一直存在。 -
奇怪的是问题被标记为重复。 Mongoose != MongoDB,并且声明为重复的问题是关于 MongoDB 的,并且没有回答这个问题。 @NeilLunn 的评论才是真正的答案。
标签: node.js mongodb mongoose pagination