【问题标题】:converting Mongoose returned array to regular JSON将 Mongoose 返回的数组转换为常规 JSON
【发布时间】:2016-02-08 20:55:47
【问题描述】:

Node.js 应用程序中,我想通过Mongoose 从数据库中获取一些数据。我这样做:

Users.find({_id:userID}).exec(function(err, users){

});

因为users 是一个类似Mongoose 对象的数组,所以我不能这样做:

users.toJSON();

如果我使用findOne,这可以工作,但现在不起作用。 users.toObject() 也不起作用,我收到此错误:

object has no method 'toObject'

如果我在这样的查询中使用lean()

Users.find({_id:userID}).lean().exec(function(err, users){

});

这可行,但它还有其他问题。例如,如果一个数组值没有值,而不是像这样显示它:

myval:[]

根本不显示该键/值对!

我想要的是我必须编辑用户结果,显然,它的Mongoose 对象,我不能。因此,我必须将其转换为普通的 JSON 但如何?

【问题讨论】:

    标签: javascript json node.js mongodb mongoose


    【解决方案1】:

    只需使用findOne 而不是find,您就可以编辑您的实例。

    如果您绝对必须使用find,那么请知道users 参数是用户实例的数组,因此只需遍历它们并一一编辑。

    Users.find({_id:userID}).exec(function(err, users){
      users.forEach(function(user){
        // edit my user here
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 2015-05-09
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多