Mongo 如何将 id 转换为字符串而不丢失所有字段

问题描述 投票:0回答:1

我正在尝试使用聚合函数将 id 转换为字符串

  {
    "$project": {
      "_id": {
        "$toString": "$_id"
      }
    }
  }

但由于某种原因,我在聚合后丢失了所有其他字段,并且仅获得“_id”字段。我应该改变什么?

蒙戈游乐场

mongodb mongoose mongodb-query aggregation-framework
1个回答
0
投票

当您在

$project
上明确使用
_id
并与表达式或
1
一起使用时,就像仅选择
_id
字段
。通常,
_id
始终包含在内,因此我们看到它就像
{ $project: { _id: 0 } }
一样,
0
表示“不要在结果中返回_id”,但包含所有其他字段。

相反,只需使用

$set
:

  {
    "$set": {
      "_id": {
        "$toString": "$_id"
      }
    }
  }

您的 Mongo Playground 示例,已修复

© www.soinside.com 2019 - 2024. All rights reserved.