Node.js 如何从mongodb获取的对象中删除密钥?
我知道有人问过这个问题,但答案是直接修改数据库,但在这种情况下,我想从用户对象中删除密码,这样密码就不会发送到前端,但删除不起作用,尽管用户是一个对象Node.js 如何从mongodb获取的对象中删除密钥?,node.js,mongodb,Node.js,Mongodb,我知道有人问过这个问题,但答案是直接修改数据库,但在这种情况下,我想从用户对象中删除密码,这样密码就不会发送到前端,但删除不起作用,尽管用户是一个对象 User.find({}).then(function(users) { let counter = 1; users.forEach(function(user) { delete user.password; console.log("after delete",user) // passwor
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;
});
任何想法!!我正在使用mongoose您正在尝试在mongoose包装器对象上使用delete关键字。delete关键字将用于本机Javascript对象。为此,您需要使用Mongoose提供的精益功能
试试这个-
User.find({}).lean().then
我只是在find查询之后添加了lean函数。现在可以使用delete关键字修改对象。为什么不将密码从查询本身中排除?find的第二个参数让您从结果中包括/排除键
User.find({}, { "password": 0 }).then(function(users) {
// The users should not contain the password key here
});
我认为这可以从MongooseV4.0.0中获得。同样,也可以在查找后使用select运算符
User.find({}).select({ "name": 1 }).then(function(users) {
// Do something
});
此查询将只选择用户的名称。它应该可以工作。您确定用户有一个名为password的字段吗。您也可以显示您的console.log输出吗?