mongoose没有在async.eachSeries中更新doc

时间:2017-08-31 13:01:29

标签: node.js mongodb mongoose

我正在尝试更新async.eachSeries内的文档。但它没有更新,我没有收到任何错误。请参阅下面的代码。

我想更新最早的文档,即该文档中的字段LastDatePresent,并且两个文档中都存在newest日期。所以我有两个基于UrlLink的重复文档,我想基于_id更新最旧的文档,并在两个文档中使用最新日期。示例文档:

{
   "_id": "older id", 
   "Date": ISODate("2017-08-25T00:00:00.000Z"),
   "UrlLink": "www.myurl.com"
   "LastDatePresent": ISODate("2017-08-30T00:00:00.000Z") //Should be updated to "LastDatePresent": ISODate("2017-08-31T00:00:00.000Z")
}
{
   "_id": "newer id",
   "Date": ISODate("2017-08-25T00:00:00.000Z"),
   "UrlLink": "www.myurl.com"
   "LastDatePresent": ISODate("2017-08-31T00:00:00.000Z")
}

感谢任何建议:

async.eachSeries(aggres, function(member, callback2) {
    myTable.find({
        "UrlLink": member.UrlLink,
        "Date": member.Date,
    }, {
        _id: 1,
        UrlLink: 1,
        Date: 1,
        LastDatePresent: 1
    }, {
        sort: {
            '_id': 1
        }
    }, function(err, post) {
        var latestdate = post[0].LastDatePresent > post[1].LastDatePresent ? post[0].LastDatePresent : post[1].LastDatePresent;        
        myTable.update({
                "UrlLink": post[0].UrlLink,
                "Date": post[0].Date
            }, {
                $set: {
                    LastDatePresent: latestdate //NOT UPDATING HERE!
                }
            },
            function(err, result) {
                console.log("saving DATA");
                callback2();
            });
    });
}, function(err) {
   console.log("DONE");
});

0 个答案:

没有答案