在数组中每个对象的末尾添加新键

阿比舍克KV

我从一个集合中获得了来自mongodb的数据。

/* 1 */
{
    "_id" : ObjectId("5be94355f220b62c7449dc0f"),
    "districts" : [ 
        {
            "name" : "NORTH AND MIDDLE",
            "code" : 632.0
        }, 
        {
            "name" : "EAST",
            "code" : 603.0
        }, 
        {
            "name" : "SOUTH",
            "code" : 602.0
        }
    ],
    "state" : "ISLANDS"
}

/* 2 */
{
    "_id" : ObjectId("5be94355f220b62c7441dc04"),
    "districts" : [ 
        {
            "name" : "Apple",
            "code" : 512.0
        }, 
        {
            "name" : "Ball",
            "code" : 522.0
        }
    ],
    "state" : "GOLD"
}

/* 3 */
{
    "_id" : ObjectId("5eee07816a011d391a45178"),
    "districts" : [ 
        {
            "name" : "DAM",
            "code" : 478.0
        }, 
        {
            "name" : "DEN",
            "code" : 481.0
        }, 
        {
            "name" : "DOG AND CAT",
            "code" : 461.0
        }
    ],
    "state" : "THE NAGAR AND HAVELI"
}

我得到了如下所示的excel工作表,如下所示,没有其他信息,只有2列

在此处输入图片说明

我的工作是为所有地区添加“地区简称”。

我尝试了以下方法

var tc = [
    "NORTH AND MIDDLE",
    "EAST",
    "SOUTH",
    "Apple",
    "Ball ",
    "DAM ",
    "DEN ",
    "DOG AND CAT"
]
 

db.dummy.find({"districts.name":{$in:tc}}).forEach(x => {
    x["districts"].forEach( y => {
        if (   
        y.name == "NORTH AND MIDDLE" ){
            y.short_name  = "NAM"
        }
        if (   
            y.name == "EAST" ){
                y.short_name  = "ET"
            }

        if (   
            y.name == "SOUTH" ){
                y.short_name  = "ST"
            }
    })
})

我得到了结果

/* 1 */
{
    "_id" : ObjectId("5be94355f220b62c7449dc0f"),
    "districts" : [ 
        {
            "name" : "NORTH AND MIDDLE",
            "code" : 632.0,
            "short_name" : "NAM"
        }, 
        {
            "name" : "EAST",
            "code" : 603.0,
        "short_name" : "ET"
        }, 
        {
            "name" : "SOUTH",
            "code" : 602.0,
        "short_name" : "ST"
        }
    ],
    "state" : "ISLANDS"
}

/* 2 */
{
    "_id" : ObjectId("5be94355f220b62c7441dc04"),
    "districts" : [ 
        {
            "name" : "Apple",
            "code" : 512.0,
        "short_name" : "Al"
        }, 
        {
            "name" : "Ball",
            "code" : 522.0
        "short_name" : "BA"
        }
    ],
    "state" : "GOLD"
}

/* 3 */
{
    "_id" : ObjectId("5eee07816a011d391a45178"),
    "districts" : [ 
        {
            "name" : "DAM",
            "code" : 478.0,
        "short_name" : "DA"
        }, 
        {
            "name" : "DEN",
            "code" : 481.0,
        "short_name" : "DN"
        }, 
        {
            "name" : "DOG AND CAT",
            "code" : 461.0
        "short_name" : "DAC"
        }
    ],
    "state" : "THE NAGAR AND HAVELI"
}

这是唯一的方法吗?就像对所有地区使用if循环或使用其他方法一样,如使用mongodb聚合或任何其他javascript方法。如果有其他方法,将很有帮助,因为当有730个分区时使用if循环会出现问题。我没有使用聚合框架的经验,所以我认为任何人都可能知道其他方法。

舱壁

您可以编写一个映射:

const districtNameToShort = {
  'NORTH AND MIDDLE': 'NAM',
  'EAST': 'ET',
  ...
}

然后在你的每个

const districtNameToShort = {
  'NORTH AND MIDDLE': 'NAM',
  'EAST': 'ET'
}
db.dummy.find().forEach(x => {
  db.dummy.update(
    {_id : x._id},
    {$set: {
      districts: x.districts.map(district => {
        district.short_name = districtNameToShort[district.name] || district.name
        return district
      })
    }}
  )
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数组或对象中动态添加带键的数据

来自分类Dev

使用lodash在数组对象中查找并添加额外的键?

来自分类Dev

使用 jq 为文件中的 json 数组中的每个对象添加一个新的键/值

来自分类Dev

向条件数组中的每个对象添加新值

来自分类Dev

在现有的json对象中添加新的键(数组)

来自分类Dev

如何在数组末尾添加对象的副本?

来自分类Dev

循环对象并在数组中累积返回每个键的长度

来自分类Dev

在数组中插入键和对象

来自分类Dev

如何在数组javascript中添加带有id的新键?

来自分类Dev

在数组中添加对象的键值对

来自分类Dev

在数组中添加不连接对象

来自分类Dev

在数组中添加新的json对象时,视图不刷新。反应本机

来自分类Dev

使用键在数组数组中划分对象

来自分类Dev

在数组中添加长度或每个字符串,并创建一个新数组,并附加结果

来自分类Dev

如何使用jQuery创建新的数组元素并在数组末尾添加?

来自分类Dev

向数组中的每个对象添加字符

来自分类Dev

在数组中的每个对象上调用实例方法

来自分类Dev

在数组中查找每个对象的offsetWidth-Javascript(NO JQuery)

来自分类Dev

在数组中搜索以查看每个对象已被使用的次数

来自分类Dev

如何在数组键中添加特殊字符

来自分类Dev

NodeJS通过键的值在数组中查找对象

来自分类Dev

如何过滤包装在数组中的对象内的键?

来自分类Dev

如何使用空格键在数组中显示对象

来自分类Dev

查找对象键是否在数组javascript中

来自分类Dev

AngularJS-如何向数组中的每个对象添加新属性

来自分类Dev

如何在Angular(打字稿)中向JSON对象添加新的键数组?

来自分类Dev

如何从数组中的每个对象中剥离键?

来自分类Dev

如何从数组中的每个对象中剥离键?

来自分类Dev

在数组中查找重复的对象,并以重复的数目作为新属性返回对象的新数组

Related 相关文章

  1. 1

    在数组或对象中动态添加带键的数据

  2. 2

    使用lodash在数组对象中查找并添加额外的键?

  3. 3

    使用 jq 为文件中的 json 数组中的每个对象添加一个新的键/值

  4. 4

    向条件数组中的每个对象添加新值

  5. 5

    在现有的json对象中添加新的键(数组)

  6. 6

    如何在数组末尾添加对象的副本?

  7. 7

    循环对象并在数组中累积返回每个键的长度

  8. 8

    在数组中插入键和对象

  9. 9

    如何在数组javascript中添加带有id的新键?

  10. 10

    在数组中添加对象的键值对

  11. 11

    在数组中添加不连接对象

  12. 12

    在数组中添加新的json对象时,视图不刷新。反应本机

  13. 13

    使用键在数组数组中划分对象

  14. 14

    在数组中添加长度或每个字符串,并创建一个新数组,并附加结果

  15. 15

    如何使用jQuery创建新的数组元素并在数组末尾添加?

  16. 16

    向数组中的每个对象添加字符

  17. 17

    在数组中的每个对象上调用实例方法

  18. 18

    在数组中查找每个对象的offsetWidth-Javascript(NO JQuery)

  19. 19

    在数组中搜索以查看每个对象已被使用的次数

  20. 20

    如何在数组键中添加特殊字符

  21. 21

    NodeJS通过键的值在数组中查找对象

  22. 22

    如何过滤包装在数组中的对象内的键?

  23. 23

    如何使用空格键在数组中显示对象

  24. 24

    查找对象键是否在数组javascript中

  25. 25

    AngularJS-如何向数组中的每个对象添加新属性

  26. 26

    如何在Angular(打字稿)中向JSON对象添加新的键数组?

  27. 27

    如何从数组中的每个对象中剥离键?

  28. 28

    如何从数组中的每个对象中剥离键?

  29. 29

    在数组中查找重复的对象,并以重复的数目作为新属性返回对象的新数组

热门标签

归档