为了账号安全,请及时绑定邮箱和手机立即绑定

只从 mongoose.find 返回 _id

只从 mongoose.find 返回 _id

冉冉说 2024-01-18 16:25:31
想要获取所有用户,但只返回 _ids 列表,检查数据库中保存的数据,一切似乎都很好。这是用户模型let UserSchema = new mongoose.Schema({  firstName: {    type: String,    minlength: 3,    trim: true,  },  lastName: {    type: String,    minlength: 3,    trim: true,  },  biography: {    type: String,    minlength: 5,    trim: true,  },    }); UserSchema.methods.toJSON = function () {   let user = this;   let userObject = user.toObject();   return _.pick(userObject, ["_id", "firstName", "email"]); };这是我的控制器功能const controller = {    fetchUsers :async (_req, res) => {        try {            await User.find({})            .then((users) => {              res.status(200).send(users);            })            .catch((err) => {              res.status(400).send(err);            });        } catch (error) {          res.status(400).json({            Error: `something is wrong. ${error}`,          });        }      }}我在邮递员中测试的结果是:[    {        "_id": "5fe26ba0d290a216c0fe6d5d"    },    {        "_id": "5fe26c8e40ca9a06b8c96259"    },   ]
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

问题是UserSchema.methods.toJSON方法没有任何电子邮件字段,如果我们想过滤输出数据,最好通过mongoose.find({"condition"},{"fields"})



查看完整回答
反对 回复 2024-01-18
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

不要同时使用 .then 和 wait 。尝试一次。假设模型是正确的。


const controller = {

    fetchUsers :async (_req, res) => {

        try {

            const users=await User.find({}).exec()

            if(users){

              res.status(200).send(users);

            }

            else{

              res.status(404).send("no user found");

            };

        } catch (error) {

          res.status(500).json({

            Error: `something is wrong. ${error}`,

          });

        }

      }

}


查看完整回答
反对 回复 2024-01-18
  • 2 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信