如何从节点js

时间:2018-03-07 12:49:07

标签: javascript json node.js mongodb

如何才能从JSON数组结果中获取指定电子邮件及其值,该结果应该类似于=> only(email:abc@gmail.com)

这是我的代码:

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("Scream_It");
  var query = { bid_location : 'abbottabad' };
  dbo.collection("bid_placement").find(query).sort({bid_amount:-1}).limit(1).toArray(function(err, result){
    if (err) throw err;
console.log(result);
      // console.log(JSON.stringify(result));
       var string = JSON.stringify(result);
       console.log(string);
        var objectValue = JSON.parse(string);
       // console.log(objectValue);
       console.log(objectValue.email);

这是我在控制台中获得的结果

[ { _id: 5a9f8849fc49ca1ff4aee3dc,
    email: 'abc@gmail.com',
    bid_amount: '200',
    bid_time: '22:22:22:22',
    bid_location: 'abbottabad',
    bid_status: 'false' } ]

3 个答案:

答案 0 :(得分:1)

这是一个简单的JavaScript:



var res = [ 
   { _id: '5a9f8849fc49ca1ff4aee3dc',
    email: 'abc@gmail.com',
    bid_amount: '200',
    bid_time: '22:22:22:22',
    bid_location: 'abbottabad',
    bid_status: 'false' },
   { _id: '5a9f8849fc49ca1ff4aee3dd',
    email: 'abcd@gmail.com',
    bid_amount: '200',
    bid_time: '22:22:22:22',
    bid_location: 'abbottabad',
    bid_status: 'false' },
   { _id: '5a9f8849fc49ca1ff4aee3de',
    email: 'abcde@gmail.com',
    bid_amount: '200',
    bid_time: '22:22:22:22',
    bid_location: 'abbottabad',
    bid_status: 'false' }
];

var finalRes = res.map(({email}) => ({email}));
console.log(finalRes);




答案 1 :(得分:0)

您可以在阵列上使用imageViewreduce

使用reduce

map

使用地图

reducedResults = result.reduce((accumulator, current) => {
   accumulator.push({ email: current.email });
   return accumulator;
}, [])

答案 2 :(得分:0)

您可以使用mongoose api中的select方法。基本上,您可以使用它来控制对象包含其属性的结果。所以,你的代码看起来像这样:

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("Scream_It");
  var query = { bid_location : 'abbottabad' };
  dbo.collection("bid_placement").find(query).select({email: 1, _id: 0}).sort({bid_amount:-1}).limit(1).toArray(function(err, result){
    if (err) throw err;
console.log(result);
      // console.log(JSON.stringify(result));
       var string = JSON.stringify(result);
       console.log(string);
        var objectValue = JSON.parse(string);
       // console.log(objectValue);
       console.log(objectValue.email);

你应该得到这样的东西:

[ { email: 'abc@gmail.com'} ]

如果您需要_id,请在选择{email: 1, _id: 1}

中使用此选项