如何在对象中迭代所有键,并在将响应发送回之前将键从'_id'更改为'id'。

10 浏览
0 Comments

如何在对象中迭代所有键,并在将响应发送回之前将键从'_id'更改为'id'。

以下是JSON文件,我试图将offers中的键名从'_id'更改为'id'

[{
        "offers": [{
            "i": "",
            "a": 
            "e": 25.3,
            "c": "在教育技术市场上的一个新概念。我能理解“边学边做”哲学的重要性。继续努力!有兴趣与您合作,推动公司的愿景发展!",
            "_id": "62565340aa2519d6cc33e791"
        }],
        "id": "62565340aa2519d6cc33e790"
    },
    {
        "er": "#3",
        "p": "Title #3",
        "p": "Idea #3",
        "at": ,
        "equity": 25.3,
        "offers": [],
        "id": "6256533baa2519d6cc33e78f"
    }
]

我是Node.js的新手

我能够更改除了'offers'键内部以外的每个pitch中的'id'键名。

有人能帮我吗?

0
0 Comments

如何迭代对象中的所有键并在发送响应之前将键从“_id”更改为“id”

问题原因:

该问题的出现是因为在发送响应之前,需要将对象中的键名从“_id”更改为“id”。这可能是因为在某些情况下,使用“_id”作为键名可能会导致问题或不符合特定的要求。

解决方法:

有两种方法可以解决这个问题。一种方法是使用JavaScript中的双重for循环,另一种方法是使用MongoDB查询语句。

对于JavaScript的解决方法,可以使用双重for循环来迭代对象中的所有键,并在每个键中将“_id”更改为“id”。首先,我们需要定义一个名为“result”的对象数组,其中包含要修改的键。然后,使用for循环迭代“result”中的每个对象。在每个对象中,将键名从“_id”更改为“id”,并删除原来的“_id”键。如果对象中还有嵌套的“offers”数组,我们需要使用第二个for循环迭代该数组,并对其中的每个对象执行相同的操作。最后,我们可以使用JSON.stringify将结果打印出来。

对于MongoDB查询的解决方法,可以使用$set和$unset操作符来修改键名。首先,使用$match操作符选择要修改的对象。然后,使用$set操作符将“id”键添加到每个对象中,并使用$map操作符迭代“offers”数组并为每个对象添加“id”键。最后,使用$unset操作符删除原来的“_id”键和“offers”数组中的“_id”键。可以在mongoplayground网站上查看示例查询的结果。

上述两种方法都可以成功将对象中的键名从“_id”更改为“id”,从而解决了问题。根据具体的使用场景和需求,可以选择适合自己的解决方法。

0
0 Comments

问题的原因是,在返回响应之前,需要遍历对象中的所有键,并将键名从'_id'更改为'id'。解决方法是在遍历对象的过程中,找到键名为'_id'的键,并将其更改为'id'。

下面是解决问题的代码:

MongoClient.connect(url, function (err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var coll = dbo.collection("pitches");
  coll
    .find({})
    .sort({
      _id: -1,
    })
    .toArray(function (err, result) {
      if (err) {
        response.send(err);
      } else {
        for (const value of res) {
            for (const offer of value.offers) {
              offer.id = offer._id
              delete offer._id
            }
        }
        response.statusCode = 201;
        response.send(result);
      }
    });
});

上述代码通过连接到MongoDB数据库,获取名为"pitches"的集合,并对其进行排序。然后,将结果转换为数组,并遍历数组中的每个元素。

在遍历过程中,对于每个元素,再遍历其内部的"offers"数组。对于"offers"数组中的每个元素,将其键名为'_id'的键的键名更改为'id',并删除'_id'键。

最后,将修改后的结果作为响应的数据发送回去,并设置响应状态码为201。

0
0 Comments

问题出现的原因是需要在发送响应之前遍历对象的所有键,并将键从"_id"更改为"id"。解决方法有两个选项。

选项1是使用MongoDB的聚合操作来更改键名。首先,我们有一些原始数据,其中包含"_id"、"name"和"salary"字段。然后,我们使用聚合操作中的"$project"阶段来指定要返回的字段,同时将"name"字段重命名为"employee"。这样,我们得到的查询结果中,"_id"键被更改为"id",并且"name"键被更改为"employee"。

选项2是使用lodash库中的"_.transform"方法。首先,我们需要导入lodash库。然后,我们可以使用"_.transform"方法来遍历对象的所有键,并在回调函数中更改键名。这样,我们可以将"_id"键更改为"id",然后将修改后的对象作为响应返回。

要解决这个问题,我们可以选择使用MongoDB的聚合操作或者lodash库中的"_.transform"方法来遍历对象的所有键并更改键名。

0