我在我的MongoDB實例中創建了一個存儲的javascript函數,用於計算每個集合中的記錄數。如果我去我的mongo外殼並輸入:從Mongoose調用存儲的JavaScript函數?
> db.eval("getTotals()");
它按預期工作。如果我嘗試通過mongo這樣調用它:
totals = mongoose.connection.db.eval("getTotals()");
console.log(totals);
undefined
獲取日誌記錄。有沒有人看到我在這裏做錯了?
在服務器中使用JS函數並不是一個好主意,它是執行任何操作的性能最低的方法。定期查詢總是會更快,並且會有不阻塞其他線程的優勢。 –
爲什麼mongo提供了一種方法呢?你能提供一些支持這個的東西嗎? –
提供一點上下文:getTotals()從5個不同的集合中獲取文檔計數。我曾假設在服務器上調用一個函數會比從貓鼬執行5個不同的查詢更高效。爲什麼後者會更快? –