【发布时间】:2018-12-23 21:31:07
【问题描述】:
我正在尝试查询这个模型:
user = {
'email': 'test@test.com',
'pages': [
{
'name': 'best page',
'sessions': [
{
sessionName: 'abc',
},
]
}, ..
]
};
基本上我想从按session._id DESC 排序的一页中选择 3 个会话数据。
User.findOne({ '_id': userId, 'pages._id': pageId })
.select('pages.sessions')
.sort({ 'pages.sessions._id': -1 })
.limit(3)
.exec(function(err, user) {
console.log(user);
});
但没有任何效果..它返回页面数组(而不是 1)。数据未排序,有所有会话而不是 3 个。
我应该改变什么?
编辑:发现我无法对其进行排序,我可以使用slice('pages.sessions') 对其进行限制,但是我怎样才能只获得 1 页而不是数组?
【问题讨论】:
标签: mongodb mongoose mongodb-query