2016-04-13 58 views
0

我將json文件插入到Mongodb(帶有Scala/Play框架)中,並將其下載到我的查看頁面以獲得其他一些要求,但是這一次它在json文件中帶有一個「_id」參數。如何從MongoDB結果中刪除_id?

但我只需要我的實際json文件只有沒有任何「_id」參數。我已經閱讀了Mongodb教程,默認情況下將它存儲爲任何收集文檔的一個_id。

請讓我知道,我怎麼能得到或有沒有機會得到我的實際json文件沒有任何_id在MongoDB中。

這是在數據庫中存儲的JSON結果(我不需要說,「_id」參數)

{ 
     "testjson": [{ 
     "key01": "value1", 
     "key02": "value02", 
     "key03": "value03" 
    }], 
    "_id": 1 
} 

回答

2

如果你看看ReactiveMongo dev guide及其API,你可以看到它支持投影在similar way as the MongoDB shell

然後你就可以明白,你可以做

collection.find(selector = BSONDocument(), projection = BSONDocument("_id" -> 0)) 

或者,當你正在使用JSON serialization

collection.find(selector = Json.obj(), projection = Json.obj("_id" -> 0)) 
+0

感謝您的回覆,我已根據您的評論添加了內容,但是這一次我也可以在我的json中看到_id。在說明中編輯了上述查詢 – Dhana

+0

我在另一個文件的另一個地方添加了相同的東西,現在它工作正常。謝謝你的幫助 !! – Dhana

1

可以在外殼使用此查詢:

db.testtable.find({},{"_id" : false}) 

這裏我們告訴mongoDB不要從集合中返回_id。 您還可以使用0,而不是假的,是這樣的:

db.testtable.find({},{"_id" : 0}) 

斯卡拉你需要將其轉換中按照駕駛員的語法。

+0

感謝您的回覆,是的,它是沒有任何_id從集合給人如果我在我的shell控制檯上運行它。但我不知道如何將它應用於scala。 – Dhana

+0

只需在文檔中找到它。不是嗎? –

+0

是的,我正在檢查Play/Scala文檔,但我找不到。 – Dhana