2015-12-26 64 views
2

我試圖導出我的集合的一個子集。我只想要包含特定「搜索」ID的文檔。雖然爲了隔離相關文檔,但我無法弄清楚我在定義查詢時做錯了什麼。這是我輸入的內容:MongoExport有效的JSON查詢構建

mongoexport --db data --collection user_admin --fieldFile exportfields.txt --query {'search':ObjectId("5621634716c878440a4e4aaf")} --type=csv --out user_admin.csv 

這是我收到的錯誤:

error validating settings: query '{'search':ObjectId(5621634716c878440a4e4aaf)}' is not valid JSON: invalid character 'c' after constructor argument

謝謝! :)

P.S.我正在使用Mongod v3.0.6

回答

1

根據documentation,您必須用單引號括起您的查詢。但是,從經驗來看,這在使用Windows命令提示符時不適用。如果使用DOS命令提示符,則需要用雙引號括起查詢,但用單引號替換查詢中的每個引用。

所以,你的查詢應該,如果你使用的不是Windows DOS這樣的:

--query '{"search":ObjectId(5621634716c878440a4e4aaf)}' 

或者這樣的命令行執行mongoexport時:

--query "{'search':ObjectId(5621634716c878440a4e4aaf)}" 
+0

感謝您的快速響應。我通過Windows命令提示符運行它,所以我認爲你的第二個建議是成立的。當我使用第二個建議時:''mongoexport --db data --collection user_admin --fieldFile exportfields.txt --query「{'search':ObjectId(5621634716c878440a4e4aaf)}」--type = csv --out user_admin.csv'我得到這個錯誤:_「錯誤驗證設置:查詢'{'搜索':ObjectId(5621634716c878440a4e4aaf)}'無效JSON:構造函數參數」_靜態後無效字符'c'。啊哈! –

+0

啊!我想到了。 ObjectId值也需要單引號。謝謝你的幫助 :) –

5

我想通了正確的順序我的JSON查詢中的引號給出了我通過Windows命令提示符運行它:

mongoexport --db data --collection user_admin --fieldFile exportfields.txt --query "{'search':ObjectId('5621634716c878440a4e4aaf')}" --type=csv --out user_admin.csv