Mongodb

使用另一個集合的 count() 自動更新記錄

  • January 3, 2022

我一直在查看文件並蒐索有關我的問題的影片,但我一無所獲。我有一個名為 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 擁有集合本身,這確保您的集合不會被鎖定以進行更新,您可以在此處閱讀有關此策略的更多資訊(免責聲明: 不是我的網站)

引用自:https://dba.stackexchange.com/questions/182146