如何从 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))