mongodb - 如何在聚合中使用_id?

标签 mongodb

我正在尝试获得这样的值:name_5ab9c3da31c2ab715d421285

db.getCollection('name').aggregate([
      { 
          $project: 
          {
              newValue: { $concat: [  "name", "_", "$_id" ]} 
          }
    }
  ])

我收到这个错误:$concat 只支持字符串,不支持 objectId

我试过改变 "$_id"ObjectId("$_id").str但仍然是同样的错误。
我使用的是 mongo 3.6,所以我不能使用 $toString。任何想法如何解决这个问题?

最佳答案

MongoDB 4.0 引入了这个特性 $toString。

用法 (在你的情况下)

db.getCollection('name').aggregate([
      { 
          $project: 
          {
              _id: {
                  $toString: "$_id"
              }
              newValue: { $concat: [  "name", "_", "$_id" ]}
          }
    }
  ])

enter image description here

关于mongodb - 如何在聚合中使用_id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51539042/

相关文章:

mongodb - 迁移到 meteor 1.7.0.4 : MongoDB : "updating the path ... would create a conflict at ..."

node.js - 如何提取单个数组中的所有金额?

mongodb - 更新集合中的大量记录

javascript - 如何从填充的字段中删除 key ?

MongoDb 上限子集合

javascript - meteor JS : Inconsistency with Meteor JS when dealing with cursors?

javascript - 动态创建键值对数组(从 mongoDB 数据库中获取)

node.js - 如何使用 node.js/mongodb 在 HTML 中显示任意的无模式数据

javascript - 在 Angular 或 Node 中创建报告?生成 HTML 客户端还是服务器端?

java - 使用 java 将超过 16mb 的文档插入 Mongo db 3.0