如何从 MongoDB 结果中删除 _id?

How to remove _id from MongoDB results?

我正在将 json 文件插入 Mongodb(使用 Scala/Play 框架)并将相同的 getting/downloading 文件插入我的视图页面以满足其他一些要求,但这次它在 json 文件中带有一个“_id”参数。

但我只需要没有任何“_id”参数的实际 json 文件。我已经阅读了 Mongodb 教程,默认情况下,任何集合文档都使用一个 _id 存储它。

请告诉我如何获得或是否有机会在 MongoDB 中没有任何 _id 的情况下获得我的实际 json 文件。

这是存储在数据库中的 json 结果(我不需要那个“_id”参数)

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

您可以在 shell:

中使用此查询
db.testtable.find({},{"_id" : false})

这里我们告诉 mongoDB 不要 return _id 从集合中。 你也可以使用 0 而不是 false,像这样:

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

对于 scala,您需要按照驱动程序语法将其转换。

如果你看看ReactiveMongo dev guide and to its API, you can see it support projection in a 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))