【问题标题】:mongoose find() output segregationmongoose find() 输出隔离
【发布时间】:2017-06-02 19:39:03
【问题描述】:

在下面的脚本中:

*exports.getServer = function(req,res) {  
    Monitor.find({serverType: 'abc'}, function(err, server) {  
        return res.json(server);  
    });  
};*

我得到以下结果:

[  {  
    "_id": "587f4ec338b859cb4adee815",  
    "serverIp": "1.1.1.1",   
    "serverName": "test1",  
    "serverType": "abc",  
    "__v": 1,   
    "feed": [  "587f4ec338b859cb4adee816"  ]  
},  {
    "_id": "587f52cbb6bb030b4ccc3f72",  
    "serverIp": "1.1.1.2",  
    "serverName": "test2",  
    "serverType": "abc",  
    "__v": 1,   
    "feed": [  "587f52cbb6bb030b4ccc3f73"  ]  
}  ]  

但我只想获取 serverIp 和 serverName。 我尝试使用 return res.json(server.serverIp); 但它没有用。请帮忙。

【问题讨论】:

    标签: json node.js mongodb mongoose


    【解决方案1】:

    这会对你有所帮助;

    *exports.getServer = function(req,res) {  
        Monitor.find({serverType: 'abc'}, {_id: 0, serverIp: 1, serverName: 1} function(err, server) {  
            return res.json(server);  
        });  
    };*
    

    find的第二个参数中,你可以写你要投影的字段。 (serverIp, serverName 在你的问题中)

    用于文档; https://docs.mongodb.com/manual/reference/method/db.collection.find/#projection

    【讨论】:

      【解决方案2】:

      使用 select 方法使用投影:

      Monitor.find({serverType: 'abc'}).select('serverIp serverName').exec(function(err, servers) {
          res.json(servers);
      });
      

      【讨论】:

        【解决方案3】:
        // find servers with a serverType matching 'abc', selecting the `serverIp` and `serverName` fields
        *exports.getServer = function(req,res) {  
            Monitor.find({serverType: 'abc'}, 'serverIp serverName', function(err, server) {  
                return res.json(server);  
            });  
        };*
        

        【讨论】:

          猜你喜欢
          • 2020-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-23
          • 2013-07-19
          • 2015-03-01
          • 2014-12-29
          • 1970-01-01
          相关资源
          最近更新 更多