当前位置: 首页 > 知识库问答 >
问题:

如何从mongodb获取的对象中删除密钥?[副本]

秦宁
2023-03-14

我知道有人问过这个问题,但我想在直接修改数据库中找到答案,但在这种情况下,我想从用户对象中删除密码,这样密码就不会发送到前端,但是delete不起作用,尽管user是一个对象。

User.find({}).then(function(users) {
    let counter = 1;
    users.forEach(function(user) {
        delete user.password;
        console.log("after delete",user) // password key/value exist

        userMap[counter] = user;
        counter++;
    });

    return userMap;
});

任何想法!!我在用猫鼬

共有2个答案

欧阳斌
2023-03-14

为什么不从查询本身中排除密码呢?查找的第二个参数让我们从结果中包含/排除键。

User.find({}, { "password": 0 }).then(function(users) {
  // The users should not contain the password key here
});

我认为这可以从Mongoose v4.0.0中获得。同样,您也可以在找到之后使用选择运算符。

User.find({}).select({ "name": 1 }).then(function(users) {
  // Do something 
});

此查询将只选择用户的名称。

柳玄裳
2023-03-14

您试图在Mongoose包装器对象上使用delete关键字delete关键字将用于本机Javascript对象。为此,您需要使用Mongoose提供的lean()函数。

试试这个-

User.find({}).lean().then

我刚刚在find查询之后添加lean()函数。现在可以使用delete关键字修改对象。

 类似资料:
  • 我在MongoDB中有一个动态键值对象。 任何帮助都会有帮助。 谢了。

  • 问题内容: 例 删除 后如何保持按键顺序?我希望它是0..1..2..3..etc 问题答案: 您无法更改密钥的名称,没有用于执行此操作的API。如果要更改密钥的名称,则需要将该特定对象复制到另一个位置,更改名称并删除旧的密钥。但是在Firebase中无法更改密钥名称。

  • 问题内容: 我正在开发一个Android项目,该项目需要JSONObject作为POST请求的主体。放置JSON的键和值后,我得到了以下代码行: 但是服务器得到以下信息: 我已经尝试过JSONStringer,但是它的帮助并不大,因为的请求是。 更新 我不尝试构造JSONObject,因为已经通过使用以下代码行(由@osayilgan给出的代码)完成了此操作: 这不是问题。下述接口用于与服务器通信

  • 问题内容: 文件: 有没有办法从数组中提取特定对象?IE如何从项数组中提取ID为23的整个项对象。 我努力了: 但是我很确定我没有正确使用’pull’。据我了解,pull将从数组中拉出字段,而不是对象。 关于如何将整个对象从数组中拉出的任何想法。 另外,我尝试在mongoose / nodejs中执行此操作,也不确定这种类型的内容是否在mongoose API中,但我找不到它。 问题答案: 尝试.

  • 问题内容: 我正在使用Mongoose库通过node.js访问MongoDB 有没有办法 从文档中删除密钥 ?即不只是将值设置为null,而是将其删除? 问题答案: 在早期版本中,您需要删除node-mongodb-native驱动程序。每个模型都有一个收集对象,该对象包含node-mongodb- native提供的所有方法。因此,您可以执行以下操作: 从2.0版开始,您可以执行以下操作: 从2