【问题标题】:Convert ObjectId to String in the MongoDB在 MongoDB 中将 ObjectId 转换为字符串
【发布时间】:2018-11-09 14:49:04
【问题描述】:

我有一个聚合查询。

{ "$addFields": {
  "collegeID": (('$collegeDetail._id')),
}}

在哪里,我想添加一个新字段'CollegeID' 作为存储在collegeDetail._id 中的ObjectId 的字符串版本。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 目前不支持此功能,但将在即将发布的版本中提供。见here
  • 没有任何可能的解决方法吗?
  • 我看不到任何东西 - 所有解决方案都谈到在 JavaScript 上下文中执行此操作,在聚合管道之外,我猜这不是您想要的。
  • 没错。会更多地了解它。谢谢。

标签: node.js mongodb mongoose mongodb-query aggregation-framework


【解决方案1】:

您应该尝试$toString 聚合将 ObjectId 转换为字符串

db.strcoll.aggregate([
  { "$addFields": {
    "collegeID": { "$toString": "$collegeDetail._id" }
  }}
])

【讨论】:

    【解决方案2】:

    编辑:从(MongoDB 4.0 版)开始,很高兴 MongoDB 制作并更新并为我们提供了一个新的操作员来完成这项工作。

    $转换

    这可用于将值的数据类型从几乎每种类型更改为每种类型

    欲了解更多信息,请点击此处:https://docs.mongodb.com/manual/reference/operator/aggregation/convert/

    希望这会有所帮助;

    【讨论】:

      【解决方案3】:

      下面的链接将为您提供将 objectId 转换为字符串的 javascript 方法: Convert ObjectID (Mongodb) to String in JavaScript

      【讨论】:

      • 感谢您的帮助,但正如您在问题中看到的那样,我想在查询本身中执行此操作。
      猜你喜欢
      • 2011-12-11
      • 2017-03-11
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      相关资源
      最近更新 更多