成功保存mongodb数据库后如何过滤

时间:2019-07-12 09:03:26

标签: node.js mongodb mongoose

我用猫鼬将用户名和密码保存到数据库中。 保存成功后,我想将此记录返回给客户端。 但是我不应该返回密码。 如何删除指定的属性?

'use strict';

// POST https://example.com/api/v1/user
async create(postData) {
  const mongoose = require('mongoose');
  const Schema = mongoose.Schema;

  const UserSchema = new Schema({
    username: String,
    password: String,
  });
  const UserModel = mongoose.model('User', UserSchema);

  const UserEntity = new UserModel({
    username: postData.username,
    password: postData.password,
  });

  // save to Database
  const result = await UserEntity.save();
  // Only return username, no password returned
  if (result) {
    delete result.password;
  }

  return result;
  // console:
  //  {
  //  username: 'tom'
  //  password: '123456' // This property is still being returned.
  //  }
}

如您所见,delete函数不起作用。 我应该如何解决。

1 个答案:

答案 0 :(得分:0)

由于result是猫鼬文档,因此您需要先使用result = result.toJSON(),然后delete result.password;才能正常工作。