2011-08-23 140 views
0

我試圖用mongoexport導出一個對象,按其ID進行過濾。用mongoexport導出一個對象,如何指定_id?

我想:

mongoexport -d "kb_development" -c "articles" -q "{'_id': '4e3ca3bc38c4f10adf000002'}" 

和許多變化,但它口口聲聲說

connected to: 127.0.0.1 
exported 0 records 

(我敢肯定有收藏在這樣的對象)

在蒙戈shell我會使用ObjectId('4e3ca3bc38c4f10adf000002'),但它似乎並沒有在mongoexport查詢中工作。

回答

3

我想你應該可以在查詢參數使用ObjectId(...)mongoexport

mongoexport -d kb_development -c articles -q '{_id: ObjectId("4e3ca3bc38c4f10adf000002")}' 

如果不工作,你可以使用「嚴格模式」的javascript ObjectId S符號,as documented here

mongoexport -d kb_development -c articles -q '{_id: {"$oid": "4e3ca3bc38c4f10adf000002"}}' 

(還要注意的是嚴格模式JSON是由mongoexport產生的格式)

+0

感謝dcrosta,我以爲我已經嘗試了這些方法,但我想我搞砸了「和!問題解決了:) – Blacksad

3

您必須使用ObjectId類型指定_id字段。在你的問題中,它被指定爲一個字符串。

代碼::

mongoexport -h localhost -d my_database -c sample_collection -q '{key:ObjectId("50584580ff0f089602000155")}' -o my_output_file.json 

注意 ::不要忘記報價查詢

0

您不必添加的ObjectId或$ OID通過回答以上建議。正如@Blacksad所提到的,只需要讓你的單引號和雙引號正確。

mongoexport -d kb_development -c文章-q '{_id: 「4e3ca3bc38c4f10adf000002」}'

1

我的MongoDB的優化版本:3.2.4。當我使用蒙戈外殼mongoexport工具:


不起作用:

-q '{"_id":ObjectId("5719cd12b1168b9d45136295")}'

-q '{_id: {"$oid": "5719cd12b1168b9d45136295"}}'


作品:

-q "{_id:ObjectId('5719cd12b1168b9d45136295')}"


- 儘管在蒙戈doc,它說,

則必須用單引號查詢(例如'),以確保它不會與您的shell環境交互 。


- 但是,單引號(')不起作用! !請用雙引號(「)

+0

它在bash中爲我工作 – lucaswxp

0

很多,我在這裏提供沒有工作的答案,錯誤與我的雙引號這裏是我工作:

mongoexport -h本地主機-d數據庫名稱-c集合名稱-q。{_id:物件( '50584580ff0f089602066633')} -o output_file.json

記得用單引號僅用於字符串的ObjectId

相關問題