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頁/結果?你能展示你的預期產出嗎? –