2016-04-13 54 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