我遇到stringify _id
问题。
使用mongo.db.some_collection.find()
查询集合后,我得到如下内容:
[{
"_id":
{
"$oid": "581c0967e14c8b2118a31758"
},
"name": "something"
},
{
"_id":
{
"$oid": "581c50aae14c8b214a3d2231"
},
"name": "something else"
}]
我希望API响应能够像以下一样简单,以便为前端开发人员提供更多便利。他们不想做item._id.$oid
之类的事情来获得实际的身份。
[{
"_id": "581c0967e14c8b2118a31758",
"name": "something"
},
{
"_id": "581c50aae14c8b214a3d2231",
"name": "something else"
}]
我不想循环遍历所有结果并操纵每个项目以获得我想要的东西。有没有办法(一个函数?)转换_id
而不循环?
我找到了答案here,但建议在插入时操纵_id
。我插入时其实并不介意。
答案 0 :(得分:1)
您可以使用聚合管道中的项目阶段来重塑字段,将返回预期的输出。:
db.test.aggregate([
{
$project:
{
name: 1,
_id: '$_id.oid'
}
}
])