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一个固定字符串,这样给了检测方还怎么匹配得了?