Mongodb
使用另一個集合的 count() 自動更新記錄
我一直在查看文件並蒐索有關我的問題的影片,但我一無所獲。我有一個名為 db 的數據庫
HPDASH
,其中有 2 個集合,scripts
並且serverList
. 我的問題是我想為該集合創建serverList
一個count()
欄位scripts
。我試過這個:
db.scripts.insert([{name: 'local_script'}, {name: 'qidsloader'}])
db.serverList.insert({script_count: db.scripts.count() })
問題是當我在腳本中插入另一條記錄時,數據
scripts_count
保持為 2。是否有可能在 MongoDB 上實現這一點?
如您所見,MongoDB 不支持自然觸發器。因此,您需要“程式技能”來完成該功能。您可以使用mongoTriggers,可以使用mongo-triggers npm 包安裝。
對於這個案例,一個更優化的解決方案是使用 Redis 將集合的計數儲存在雜湊集下,而 mongodb 擁有集合本身,這確保您的集合不會被鎖定以進行更新,您可以在此處閱讀有關此策略的更多資訊(免責聲明: 不是我的網站)