mongoose find()输出隔离

时间:2017-01-18 12:17:34

标签: json node.js mongodb mongoose

在下面的脚本中:

*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); 但它没有用。请帮助。

3 个答案:

答案 0 :(得分:2)

这会对你有帮助;

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

find的第二个参数中,您可以编写要投影的字段。 (问题中serverIpserverName

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

答案 1 :(得分:1)

// 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);  
    });  
};*

答案 2 :(得分:1)

使用select方法进行投影:

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