gpt4 book ai didi

javascript - 在node.js中解析JSON对象

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:52 26 4
gpt4 key购买 nike

{"__v":0,"_id":{"$oid":"55f13d34258687e0bb9e4385"},"admin":true,"email":"emaple1@gmail.com","last_login":"11:25:24 AM","name_surname":"user1","password":"qwerty123"}
{"__v":0,"_id":{"$oid":"55ef49dd5d610eab18719deb"},"admin":true,"email":"emaple2@gmail.com","last_login":"12:25:24 AM","name_surname":"user2","password":"qwerty123"}
{"__v":0,"_id":{"$oid":"55f0173bb3322bf560724fd1"},"admin":true,"email":"emaple3@gmail.com","last_login":"10:25:24 AM","name_surname":"user3","password":"qwerty123"}

你好,我在nodeJS文件中工作,那里有一个JSON对象的集合,我想通过它进行搜索。对于此列表中的每个用户,我需要比较字段“last_login”。我是nodeJS新手,有人可以帮忙吗?谢谢!

这是我尝试过的:

User.find({}, {last_login: }, function(err, docs) {
if (err) {
return res.json({ success: false, message: 'Failed to display last logins.' });
}
docs.forEach(function(doc, index) {
res.json({success: true, message: 'time of last login', last_login: doc.last_login});
})
//res.json(users);
});
});   

其中last_login是用户对象中的一个字段,基本上我需要迭代数据库中的所有用户并仅提取last_login并显示在响应中。我不知道在find()中放入什么值在大括号内这是我陷入困境的部分

我稍微更改了该函数,它返回一个 JSON 对象,其中包含与搜索查询匹配的一个用户的信息。问题是,控制台将结果显示为整个对象,尽管我只想获取特定的键值对,即 last_login: value

function searchByUserName(name_surname) {
    return list.filter(function(user) {
        return user.name_surname === name_surname;
    });
}
var a = searchByUserName('user1');
for (last_login in a ) {
  if (a.hasOwnProperty(last_login)) {
    console.log("last_login" + "=" + JSON.stringify(a[last_login]))
  }
}

你能告诉我,要进行哪些更改才能仅获取last_login key 这是我收到的 console.log() 的示例结果:

last_login={"__v":0,"_id":{"$oid":"55f13d34258687e0bb9e4385"},"admin":true,"email":"emaple1@gmail.com","last_login":"11:25:24 AM","name_surname":"user1","password":"qwerty123"}

虽然我想要 last_login = “last_login”: 11:25:24 AM

最佳答案

假设它是一个如下所示的对象数组。

var users = [{"__v":0,"_id":{"$oid":"55f13d34258687e0bb9e4385"},"admin":true,"email":"emaple1@gmail.com","last_login":"11:25:24 AM","name_surname":"user1","password":"qwerty123"},
{"__v":0,"_id":{"$oid":"55ef49dd5d610eab18719deb"},"admin":true,"email":"emaple2@gmail.com","last_login":"12:25:24 AM","name_surname":"user2","password":"qwerty123"},
{"__v":0,"_id":{"$oid":"55f0173bb3322bf560724fd1"},"admin":true,"email":"emaple3@gmail.com","last_login":"10:25:24 AM","name_surname":"user3","password":"qwerty123"}];

您可以创建如下所示的函数

function searchByLastLogin(last_login) {
return users.filter(function(user) {
return user.last_login === last_login;
});
}

console.log(searchByLastLogin("12:25:24 AM"));
console.log(searchByLastLogin("10:25:24 AM"));
console.log(searchByLastLogin("11:25:24 AM"));

它将重新运行用户数组,其last_login将与给定参数last_login匹配。

更新

我从您的评论中了解到,您希望每个用户最后一次登录。

为此,你可以执行如下操作

var last_logins = users.map(function(user){
return user.last_login;
});

console.log(last_logins); //prints [ '11:25:24 AM', '12:25:24 AM', '10:25:24 AM' ]

引用文献

filter | map

关于javascript - 在node.js中解析JSON对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32502006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com