如何使用node.js从数组中获取值?

时间:2016-04-06 13:23:53

标签: node.js mongodb

数组结果如下所示

[ 
    { 
        _id: 56fe444d6ce2226431f5388c,
        name: 'admin',
        email: 'admin@gmail.com',
        password: '$2a$10$Wz34L5QZ6ACQIP.Q2WOJLuOSvs0aHQbSO1bhhOpiiXDOaN/AIF8U2',
        occasiontype: 'Anniversary',
        date: Mon Apr 18 2016 00:00:00 GMT+0530 (India Standard Time),
        __v: 0 
    }
]

的node.js

router.post('/find-registry', function(req, res){
        var uEmail = req.body.email;

        var findUserId = function(db, callback) {
            var cursor =db.collection('users').find({email:uEmail}).toArray(function(err, docs){
                if(err){  
                    callback(new Error("Some problem"));
                } else {
                    callback(null,docs);
                } 
            });
        };

        MongoClient.connect(url, function(err, db) {
            assert.equal(null, err);
            findUserId(db, function(err,docs) {
                db.close();
                console.log(docs);
            });
        }); 


    });

这里显示数组结果的console.log(docs)。但我只需要名称。我怎么得到它?我尝试过console.log(docs[name]),但显示未定义。

3 个答案:

答案 0 :(得分:3)

你可以这样 -

docs[0].name
  

您必须访问docs数组中的第一个对象,然后访问该对象的name属性。

<强>更新

您只需使用 findOne()方法,然后像这样访问name属性 -

docs.name

答案 1 :(得分:2)

您应该使用catdocs[0].name是一个数组,每个条目(在这种情况下只有一个)是一个具有多个属性的对象(包括docs)。

答案 2 :(得分:-1)

查找数组中的每个名称我建议映射到一个函数,该函数查找数组中每个对象的名称。当你在数组中传递多个对象时,这比在数组中选择第0个元素更具可扩展性和容错性(这就是它首先在数组中的原因,对吧?)