1
我试图查询这个模型MongoDB的简单quering:与子文档
user = {
'email': '[email protected]',
'pages': [
{
'name': 'best page',
'sessions': [
{
sessionName: 'abc',
},
]
}, ..
]
};
基本上我想从session._id
降序排序的一个页面中,选择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页,而不是数组?
返回空数组,但我会看看聚合。谢谢。 – dontHaveName
使用mongoose.Types.ObjectId(userId,pageId)解决了它。你也知道如何从我编辑的问题中得到1个结果(我想只使用简单查询+ slice()对性能更好)? – dontHaveName
你是什么意思1页/结果?你能展示你的预期产出吗? –