如何访问此对象的属性?

时间:2014-03-21 19:25:09

标签: javascript node.js mongodb object

我在node.js和socket.io中工作,基本上我在监听socket disconnect事件并调用方法。 app.update()

socket.on('disconnect', function (data) {
    app.update();
});

// This is in another file, and the id is static, but I am more concered with the
// messages object that is passed through.
update: function() {
    models.Message.find({_id: "532c8d9ce889ed4c21538630"}, function(err, messages) {
        console.log(messages)
    });
}

这就是messages对象的样子

[ { username: 'Marcus',                                         
    connected: true,                                            
    _id: 532c8d9ce889ed4c21538630,                              
    __v: 0 } ]

我不确定如何使用它周围的括号访问对象,但基本上我想更新对象,以便我可以将connected设置为false。

我尝试了messages['connected']

3 个答案:

答案 0 :(得分:3)

你有一系列物品。所以你需要访问数组的第一个元素,然后连接'属性。这样做:

messages[0].connected = false;

答案 1 :(得分:3)

messages可能包含多个结果,因此您在那里有一个数组。

实际上messages将始终是一个数组,因为您正在使用find,这需要多个结果。如果您使用findOne而不是数组而是文档。

您应该尝试举例.. messages[0].username

答案 2 :(得分:0)

如果您想更新其中的每一个:

messages.forEach(function(message) {
    message.connected = false;
});