我有一個計算所有注冊用戶的操作,在我的 MongoDB 中有一個名為 register-users 的集合。這是我如何做到的:
const User = require("../models/User")
const Topic = require("../models/Topic")
router.get('/', async (req, res) => {
await User.count((err, registeredUsers) => {
if (err){
console.log(err)
} else {
res.render("register", {registeredUsers})// using EJS for my template engine
}
})
})
所以這讓我計算注冊的用戶總數,但我在資料庫中有另一個名為主題的集合,我也想獲得總計數。我怎樣才能做到這一點而不必再次 res.render (我什至不確定這是否有效)并傳入另一個物件?這是否可以計算用戶和主題(這是不同的集合和模型)?
目標是在 ejs 中它有一些內容:
注冊用戶總數:已注冊用戶
創建的主題總數:totalTopics
uj5u.com熱心網友回復:
模型.count()
計算資料庫集合中匹配過濾器的檔案數。
此方法已棄用。如果要計算集合中的檔案數,例如
count({}),請改用該estimatedDocumentCount()函式。否則,請改用該countDocuments()功能。
來源:https ://mongoosejs.com/docs/api.html#model_Model-count
此外,由于您使用的是async函式,我們可以使用它Promise.all()來并行運行查詢。
const User = require("../models/User")
const Topic = require("../models/Topic")
router.get('/', async (req, res) => {
const [userCount, topicCount] = await Promise.all([
User.countDocuments({}),
Topic.countDocuments({})
])
// using EJS for my template engine
res.render("register", {
registeredUsers: userCount,
totalTopics: topicCount
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503956.html
標籤:javascript 节点.js mongodb 表示 猫鼬
