gpt4 book ai didi

javascript - 匹配不同记录中的 2 个字段 Mongoose

转载 作者:行者123 更新时间:2023-12-03 06:26:22 25 4
gpt4 key购买 nike

早上好

我正在尝试匹配数据集中的某些字段。该数据集包含如下记录:

{
"token" : "17e0d95f2e2112443cfb09970ae9140e",
"answers" : {
"Yourname" : "Marco",
"youremail" : "marco@me.nl",
"recemail" : "sonja@me.nl"
}
},


{
"token" : "cf5ae65b05249dc6b2a0c99c4cf9688e",
"answers" : {
"yourname" : "Sonja",
"youremail" : "sonja@me.nl",
"recemail" : "marco@me.nl"
}
}

在本例中,它应该与两者匹配,因为 recemail(收件人电子邮件)与其他人的电子邮件地址匹配。反之亦然。我试图找到的是如何找到这两条记录(在具有更多匹配的更大数据集中)。

因此,Marco 的 recemail 应该找到 Sonja 的 youremail,然后这两个匹配项应该可以保存到另一个集合中,但这不是这里的重要部分。

希望有人能帮我解决这个问题谢谢!

最佳答案

以下代码将返回一个包含 2 项数组的数组。每个 2 条目数组由发件人电子邮件和收件人电子邮件组成。每对只会出现一次。换句话说,您会得到 ["marco@me.nl", "sonja@me.nl"] 但不会得到 ["sonja@me.nl", "marco@me .nl"].

var list = [{
"token" : "17e0d95f2e2112443cfb09970ae9140e",
"answers" : {
"Yourname" : "Marco",
"youremail": "marco@me.nl",
"recemail" : "sonja@me.nl" }
}, {
"token" : "cf5ae65b05249dc6b2a0c99c4cf9688e",
"answers" : {
"yourname" : "Sonja",
"youremail": "sonja@me.nl",
"recemail" : "marco@me.nl" }
}, {
"token" : "fe2c2740e083dfe02cc7e96520a0e079",
"answers" : {
"yourname" : "Joe",
"youremail": "joe@foo.com",
"recemail" : "mike@bar.com" }
}
];

var res = [], sz = list.length;

list.forEach(function(obj, pos) {
for(var i = pos + 1; i < sz; i++) {
if(
list[i].answers.youremail == obj.answers.recemail &&
list[i].answers.recemail == obj.answers.youremail
) {
res.push([ obj.answers.youremail, obj.answers.recemail ]);
}
}
});
console.log(res);

关于javascript - 匹配不同记录中的 2 个字段 Mongoose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633956/

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