1. 你敢相信 mongoexport 無法查到數據 , 但是 mongo shell可以查到數據的情況嗎?
2. 持續十分鐘,導出一個活動的點擊時,發現無論如何操作都是,shell可以顯示,alias里面使用mongoexport就是沒有結果?
3. 我納悶了。free看了一下mongo服務器,5G的cached內存。
難道mongo還要分數據有沒有從內存同步到硬盤嗎?
4. 于是在測試服務器上,聲明一個對象報存mongo shell顯示的一條點擊,然后 db.click_20170711.insert(click3137).
5. 現在導出測試服務器上的:
mongoexport --port 37017 -d mclog -c click_20170711 -q "{_id:/^3137.*$/}" -o 3137_click_20170711_export.txt
結果還是沒有!
6. 然后測試服務器上執行 sync;echo 3 > /proc/sys/vm/drop_caches
再次導出數據,怎么還是沒有?!
7. 就在我要瘋了的時候哦,一眼看到點擊記錄里:
"clickid" : "clickid_21",
怎么會有這樣的clickid?這時作死嗎?!
8. 然后檢查alias立馬發現,alias為了兼容之前的透傳,查找時使用的時clickid上的索引,結果怎么都對應不上活動的id??!
shell里面查找使用的是_id上的索引,當然找到了啊!
9. 服了這家渠道!測試時,讓傳cid,結果胡亂給clickid一個固定字符串,這樣給了檢測方還怎么匹配得了?