簡體   English   中英

匹配不同記錄中的2個字段

[英]Match 2 fields in different records Mongoose

早上好

我正在嘗試匹配數據集中的某些字段。 數據集包含如下記錄:

{
    "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 ,然后應將這兩個匹配項保存到另一個收藏recemail ,但這並不是這里的重要部分。

希望有人可以幫助我進行此查詢謝謝!

以下代碼將返回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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM