摘要:由于之前涉及分表,把用戶所關聯的各種數據,我們暫設定為代表四種業務比如為,可能屬于表,表,表,表?,F在要統一改為實現在表中有一個字段,類型是數組,分別存儲相當應的表明比如這樣。
由于之前涉及mysql分表,把用戶所關聯的各種數據,我們暫設定為abcd,代表四種業務
比如userid 為1 ,可能屬于 a1表,a2表,b3表,d4表。
現在要統一改為mongo
實現在user表中有一個abcd字段,類型是數組,分別存儲相當應的表明
比如 abcd [0=>a1,1=>b2,2=>c3]這樣。
思路也很簡單,分表找到數據庫屬于abcd的所有表,聯合查詢,取到表名和pid(person id),然后插入更新到mongo abcd字段即可。
以下是簡單實現:
test->d_user; while ($row = mysql_fetch_assoc($res)) { $collection->update(array("pid"=>(int)$row["pid"]),array("$addToSet"=>array("acdt"=>$row["tbname"]))); }
ps:myslq Union要進行重復值掃描,所以效率比較低。如果合并沒有刻意要刪除重復行,那么就使用Union All兩個要聯合的SQL語句 字段個數必須一樣,而且字段類型要(一致)因為這些表里就是存了一個pid和時間,mongo的addtoset去重我猜又比mysql快,所以用了union all;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21212.html
摘要:由于之前涉及分表,把用戶所關聯的各種數據,我們暫設定為代表四種業務比如為,可能屬于表,表,表,表。現在要統一改為實現在表中有一個字段,類型是數組,分別存儲相當應的表明比如這樣。 由于之前涉及mysql分表,把用戶所關聯的各種數據,我們暫設定為abcd,代表四種業務 比如userid 為1 ,可能屬于 a1表,a2表,b3表,d4表?,F在要統一改為mongo實現在user表中有一個abc...
摘要:如果不存在則創建新記錄。如果值為,執行驗證。如果選項為,在新建時插入文檔定義的默認值。以模式進行更新。禁用模式,允許覆蓋記錄示例更新多個為的文檔將設置為更新多條數據與相同更新一條數據設置無效查找查詢條件控制返回的字段控制選項回調函數。 在使用node.js時,時常與之搭配的是mongoDB,一般我們不寫原生mongo語法,一個經常使用的mongo庫便是mongoose,由于個人記性比較...
摘要:原文鏈接為什么選擇了我也不知道官方中文論壇官方文檔中文文檔安裝此處的方式是安裝部署不用考慮環境配置問題,但是相應的也會有一些弊端比如文件的修改等變得麻煩下方為鏡像的為了修改文件方便,加了一個文件夾方便和宿主機文件交換同步上傳的 原文鏈接 為什么選擇了NodeBB?我也不知道~~~ NodeBB官方Github NodeBB中文論壇 NodeBB官方文檔 NodeBB中文文檔 安裝 此...
摘要:創建三個數據庫目錄啟動三個實例開啟命令行初始化查看添加一個從節點這里的是查出來的屬性添加一個再查看狀態可以看到變成了三個自動恢復執行下面的代碼模擬插入操作插入成功插入失敗正在 創建三個數據庫目錄 $ cd /data $ mkdir db27017 db27018 db27019 啟動三個實例 $ mongod --replSet replset --dbpath /data/db27...
閱讀 2892·2021-11-24 09:38
閱讀 3515·2021-11-23 09:51
閱讀 980·2021-09-09 11:52
閱讀 4036·2021-08-11 11:18
閱讀 1115·2019-08-30 14:05
閱讀 3234·2019-08-30 11:23
閱讀 1771·2019-08-29 17:02
閱讀 1130·2019-08-26 13:49