如何使用节点js仅返回mongodb中字段的值。

时间:2018-02-16 06:57:33

标签: javascript node.js mongodb

当我用这种方法查询我的mongodb数据库时:

app.get('/', function (req, res) {

    user.find({}, {twitter: 0, _id: 0, __v:0,}, function (err, result) {
        if (err) throw err; 

        console.log(result); 

        res.render('pages/index', {

            path: result


        });
    });

});

我得到了这个结果:

{ meme: { imgs: 'http://localhost/public/Images/okro.jpg' } }
{ meme: { imgs: 'http://localhost/public/Images/1518530337363-okro.jpg' } }
{ meme: { imgs: 'http://localhost/public/Images/1518530481130-meme.jpg' } } 

但我想要它返回imgs字段中的实际值。

我想要这样的东西。

 {'http://localhost/public/Images/okro.jpg'} 
{'http://localhost/public/Images/1518530337363-okro.jpg'} 
{ 'http://localhost/public/Images/1518530481130-meme.jpg' }

如何使用节点js在MongoDB中实现这一点?

3 个答案:

答案 0 :(得分:1)

如果您不需要重复值,可以使用distinct

 db.collection.distinct('meme.imgs')

答案 1 :(得分:0)

var mongoose = require('mongoose');
var Schema = mongoose.Types.ObjectId;
var condition1 = { $match: { 'twitter':  { $eq: 0 }  } };    
var condition2 = { $match: { '_id':  { $eq: 0 }  } };
var condition3 = { $match: { '_id':  { $eq: Schema('11111111111111111') }  } };
var condition4 = { $match: { '__v':  { $eq: 0 }  } };
var project = { "$project": { 
                        "imgs": '$meme.imgs'                            
                    }
        };
user.find({}, {condition1,condition2,condition3,condition4,project}, function (err, result) {

})

答案 2 :(得分:-1)

您可以简单地解析结果。更新后的答案。

user.find({},{_id: 0,details:0,name:0 },function(err, docs){
  docs.forEach(function(u) {
        u=JSON.parse(JSON.stringify(u))
        console.log(u.meme); 
  });
});