試圖在mongoexport中使用查詢會導致錯誤。但是相同的查詢由mongo-client評估,沒有錯誤。mongoexport JSON解析錯誤
在蒙戈客戶端:
db.listing.find({"created_at":new Date(1221029382*1000)})
與mongoexport:
mongoexport -d event -c listing -q '{"created_at":new Date(1221029382*1000)}'
所生成的錯誤:
Fri Nov 11 17:44:08 Assertion: 10340:Failure parsing JSON string near:
$and: [ {
0x584102 0x528454 0x5287ce 0xa94ad1 0xa8e2ed 0xa92282 0x7fbd056a61c4
0x4fca29
mongoexport(_ZN5mongo11msgassertedEiPKc+0x112) [0x584102]
mongoexport(_ZN5mongo8fromjsonEPKcPi+0x444) [0x528454]
mongoexport(_ZN5mongo8fromjsonERKSs+0xe) [0x5287ce]
mongoexport(_ZN6Export3runEv+0x7b1) [0xa94ad1]
mongoexport(_ZN5mongo4Tool4mainEiPPc+0x169d) [0xa8e2ed]
mongoexport(main+0x32) [0xa92282]
/lib/libc.so.6(__libc_start_main+0xf4) [0x7fbd056a61c4]
mongoexport(__gxx_personality_v0+0x3d9) [0x4fca29]
assertion: 10340 Failure parsing JSON string near: $and: [ {
但這樣做在Date
乘法預先在mongoexport:
mongoexport -d event -c listing -q '{"created_at":new Date(1221029382000)}'
作品!
爲什麼mongo在這兩種情況下對查詢進行不同的評估?
當我用1221029382000替換1221029382 * 1000時問題消失。這是一個錯誤嗎? – Raphael
在我看來,mongoexport無法評估計算,比如你的乘法。不能自己測試它,而是用一個帶有乘法或其他計算的簡單查詢來測試它。 – hellectronic
這可能是真的,但那是一個錯誤。爲什麼客戶端不同於mongoexport處理JSON查詢? – Raphael