問題描述在nodejs中使用mongooseconst query=myModel.find({name:'xiaoming'});const total=query.count();const data=query.skip(20).limit(10);為什么這樣寫會報錯?正確的寫法應該怎樣寫?
1 回答

四季花海
TA貢獻1811條經驗 獲得超5個贊
查了下文檔,應該是因為你這是兩次查詢,一次count查詢,一次skip加limit查詢,所以你的query查詢永遠都是最先指定的count查詢,所以你第二次的結果其實就是count返回的結果,所以是number類型的數字。
雖然不知道你為啥又不寫回調,又不走Promise形式也能得到結果。我也就這么寫了~
分兩次查詢就行了,因為你第二次查詢是skip加limit,所以應該沒辦法不走2次查詢又能得出總文檔數又能得出分頁查詢得結果。
const query1 = myModel.find({name:'xiaoming'}); const query2 = myModel.find({name:'xiaoming'}); const total = await query1.count().exec(); //所有name為xiaoming的文檔數量const data = await query2.skip(20).limit(10).exec();
- 1 回答
- 0 關注
- 2189 瀏覽
添加回答
舉報
0/150
提交
取消