首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中的字符串级联mongodb

数组中的字符串级联mongodb
EN

Stack Overflow用户
提问于 2018-05-14 16:39:11
回答 1查看 319关注 0票数 1

我正在尝试将数组元素转换为文档中的新行,但我总是得到空值,这就是我现在所拥有的。

代码语言:javascript
复制
{
"_id" : ObjectId("5af9a044db06595c4a3c60d3"),
"word" : [ 
    "1501143005", 
    "41D44F7F-D5B3-4f3f-85AC-1E122DA8C506", 
    "4100", 
    "7493"
]}

这是我想要得到的

代码语言:javascript
复制
{
"_id" : ObjectId("5af9a044db06595c4a3c60d3"),
"newId" : "1501143005-4100",
"oldId" : "7493-4100"}   

到目前为止,我已经进入了下一个项目。

代码语言:javascript
复制
db.getCollection('buffer2').aggregate([

    { 
       $project:{
          word:{
              "$map":{
                  "input": "$word", "as" : "u",
                  "in":{
            newId: { $concat: [ "$$u.0", "-", "$$u.2" ] },
            oldId: { $concat: [ "$$u.3", "-", "$$u.2" ] } 
           }
           }
       }}
       }]);

我将非常感谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-14 17:10:26

你可以用$concat$arrayElemAt代替$map

代码语言:javascript
复制
db.collection.aggregate([
  {
    $project: {
      newId: {
        $concat: [
          {
            $arrayElemAt: [
              "$word",
              0
            ]
          },
          "-",
          {
            $arrayElemAt: [
              "$word",
              2
            ]
          }
        ],

      },
      oldId: {
        $concat: [
          {
            $arrayElemAt: [
              "$word",
              3
            ]
          },
          "-",
          {
            $arrayElemAt: [
              "$word",
              2
            ]
          }
        ],

      }
    }
  }
])

输出

代码语言:javascript
复制
{
  "_id" : ObjectId("5af9a044db06595c4a3c60d3"),
  "newId" : "1501143005-4100",
  "oldId" : "7493-4100"
}   

看这里的结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50335167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档