使用mongoose在mongo中查找用户,并将结果返回到JSON

Find user in mongo, with mongoose, and return the result to a JSON

本文关键字:结果 返回 JSON 用户 mongoose mongo 查找 使用      更新时间:2023-09-26

我想在mongo搜索一些用户,并把它们放在json中,但每次我尝试它的结果,我得到的是一个大对象与元数据。

下面的代码包含我所做的

var myJson = {
              user : User.findOne({
                        firstName: regex,
                        lastName: authorSplitedName.last
                     }, function (err, user){
                        return user;
                     })
             }

非常感谢您的帮助!

尝试使用JSON.parse()和JSON.stringify()删除猫鼬对象属性:

var myJson = {
              user : User.findOne({
                        firstName: regex,
                        lastName: authorSplitedName.last
                     }, function (err, user){
                        return JSON.parse(JSON.stringify(user)));
                     })
             }

Mongoose的find方法通过回调函数异步返回结果。这意味着,findOne方法将而不是给出查询的结果(在示例代码中显然是这样假设的)。如果你使用express.js,你通常做一些像res.json(result)在你的回调函数发送JSON结果:

router.get('/:someParameter', function(req, res, next) {
    var query = {}; // your query
    User.findOne(query, function(err, user) {
        if (err) return next(err); // handle error case
        res.json(user);
    });
});

如果你需要一个没有猫鼬特定属性的原始JSON或原始对象,你可以在猫鼬文档上使用toJSON()toObject()方法。

关于你的评论;我不确定这是不是一个问题,但是:如果你搜索一个集合,同样适用;不同之处在于,你的回调方法将接收一个数组作为第二个参数,而不是单个对象。