mongodb - 如何在 $project 中将 $toString 用于 MongoDB 上的子文档字段?
问题描述
我正在尝试像这样聚合集合并转换ObjectID
为字符串$project
:
'$project' => [
'name' => 1,
'desc' => 1,
'price' => 1,
'category._id' => ['$toString' => '$_id'],
'category.name' => 1
]
但是,通过这样做,它会转换文档_id
而不是类别 subdocument _id
。
无论如何让它转换category
子文档_id
?
解决方案
$map
category
迭代数组循环并转换_id
为字符串并返回name
和_id
{
$project: {
name: 1,
desc: 1,
price: 1,
category: {
$map: {
input: "$category",
in: {
_id: { $toString: "$$this._id" },
name: "$$this.name"
}
}
}
}
}
推荐阅读
- python - 在python中比较多维分布的测试
- reactjs - 如何在 ag-grid(react)树数据中的下拉箭头旁边显示孩子的数量?
- typescript - 打字稿 - 从参数元组中删除最后一个元素,取消最后一个参数
- angular - 创建“任何”类型的扩展方法。错误:“任何”仅指一种类型,但在此处用作值
- c# - MaterialPropertyBlock 在运行时不会改变颜色?
- android - 如何在 Android 中创建自定义画笔
- javascript - Gridstack - 如果我在重新初始化之前破坏网格,则稍后会失败
- azure - 如何永久清除在启用软删除的情况下创建的整个 azure keyvault?
- python - 这个 Python 代码中的 [:5] 和 [5] 有什么区别?
- docker - 如何创建在 docker 中运行的自由式 jenkins 作业