Failed: error parsing query as json: invalid character '-' after constructor argument


今天用mongodb的mongodump備份數據,添加了一個-q命令,用來進行日期篩選

具體的命令大概是這樣的

mongodump -h localhost:27017 -u admin -p xxx -d dbname -c c1 -o D:\dbname -q "{"StartTime":{"$lt":ISODate("2020-12-02T00:00:00.000+08:00")}}" --authenticationDatabase admin

結果報錯 Failed: error parsing query as json: invalid character '-' after constructor argument

我將{"StartTime":{"$lt":ISODate("2020-12-02T00:00:00.000+08:00")}}放到db中查詢就不會報錯

命令大概是這樣的

db.getCollection('c1').find({"StartTime":{"$lt":ISODate("2020-12-02T00:00:00.000+08:00")}})

為什么放到find里面就正常,放到mongodump命令中就報錯呢

提示說是構造函數后面的無效字符”-“,這個提示誤導了我,折騰了老半天我才發現,原來是雙引號的鍋

db.getCollection('c1').find是個函數,里面傳遞的是一個json對象,ISODate的構造函數傳入的是一個字符串,這是完全沒有問題的

但是mongodump是個命令,-q后面跟的是一個字符串,字符串用雙引號引起來,鍵用雙引號好像沒有問題,但是值ISODate構造函數傳入的字符串也用了雙引號,好像就出問題了,我把ISODate構造函數中的雙引號改成單引號貌似就沒有問題了。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM