Tuesday, 9 May 2017

user already exist document need to update if user not there document need to insert not working?

var logs = [{
    mobilenumber: '1',
    ref: 3,
    points: 1000,
    ctype: 'mycredit',
    entry: 'sdfsdf',
    entry: 0
}, {
    mobilenumber: '1',
    ref: 6,
    points: 2000,
    ctype: 'mycredit',
    entry: 'sdfsdf',
    entry: 0
}, {
    mobilenumber: '2',
    ref: 7,
    points: 2600,
    ctype: 'mycredit',
    entry: 'sdfsdf',
    entry: 0
}, {
    mobilenumber: '2',
    ref: 15,
    points: -1500,
    ctype: 'mycredit',
    entry: 'sdfsdf',
    entry: 0
}, {
    mobilenumber: '10',
    ref: 15,
    points: 800,
    ctype: 'mycredit',
    entry: 'sdfsdf',
    entry: 0
}, {
    mobilenumber: '11',
    ref: 15,
    points: 110,
    ctype: 'mycredit',
    entry: 'sdfsdf',
    entry: 0
}];

var summary = [];
var positive = 0,
    negative = 0,
    total = 0,
    count = 0;
for (var i = 0; i < logs.length; i++) {
    count = 0;
    positive = 0;
    negative = 0;
    total = 0;

    for (var j = i; j < logs.length; j++) {
        if (logs[i].mobilenumber === logs[j].mobilenumber) {
            if (logs[j].points < 0) {
                negative += logs[j].points;
            } else if (logs[j].points >= 0) {
                positive += logs[j].points;
            }

            total += logs[j].points;
            count++;
        }
    }
    i += count - 1;
    var obj = {
        mobilenumber: logs[i].mobilenumber,
        positivepoint: positive,
        negativepoint: negative,
        balancepoints: total
    }
    summary.push(obj);
    Summary.update({
            "mobilenumber": logs[i].mobilenumber
        },
        JSON.stringify(obj), {
            upsert: true
        },
        function(err, Summary) {
            if (err) {
                console.warn(err.message);
            } else {
                console.log(obj);
            }
        }
    )
}

console.log("summarylist = ", summary);

var giftList = [];

for (var i = 0; i < summary.length; i++) {
    var mod = Math.floor(summary[i].balancepoints / 1000);

    for (var j = 0; j < mod; j++) {
        var obj = {
            mobilenumber: summary[i].mobilenumber,
            gifed_id: 1,
            ref: 'gifted',
            gifed_point: 1000,
            active: true
        }
        summary[i].balancepoints -= 1000;
        summary[i].negativepoint -= 1000;
        giftList.push(obj);
    }
}
console.log("giftlist = ", giftList);

when ever user reaches 1000 point i created new giftcard and store it on gift collection .

Every time i am calculating the user 'positivepoint' ,'negativepoint' and 'balancepoints' of all user and everything is working fine

if you run the above code you will get two object lists 'summarylist' and 'giftlist'

Now i want to insert summarylist object if user is not there if user is there i want to update summarylist object in summarycollection

here i have written code for update /insert but its not working

summary collection already has three documents

{
    "_id": {
        "$oid": "59118950aae3ab641f2d01b6"
    },
    "mobilenumber": "1",
    "positivepoint": 1000,
    "negativepoint": 0,
    "balancepoints": 1000,

},
{
    "_id": {
        "$oid": "950aae591183ab641fb62d01"
    },
    "mobilenumber": "10",
    "positivepoint": 100,
    "negativepoint": -10,
    "balancepoints": 90,

},
{
    "_id": {
        "$oid": "183950aae591ab62d01641fb"
    },
    "mobilenumber": "14",
    "positivepoint": 1000,
    "negativepoint": 0,
    "balancepoints": 1000,

}

i want to update mobilenumber 1 and 10 documents and

i want to insert mobilenumber 2 and 11

{
    "mobilenumber": "1",
    "positivepoint": 4000,
    "negativepoint": -3000,
    "balancepoints": 1000,

},
{
    "mobilenumber": "2",
    "positivepoint": 2600,
    "negativepoint": -2500,
    "balancepoints": 100,

},
{

    "mobilenumber": "10",
    "positivepoint": 900,
    "negativepoint": -10,
    "balancepoints": 890,

},
{

    "mobilenumber": "11",
    "positivepoint": 110,
    "negativepoint": 0,
    "balancepoints": 110,

},
{

    "mobilenumber": "14",
    "positivepoint": 1000,
    "negativepoint": 0,
    "balancepoints": 1000,

}

this is my code but its not working

Summary.update({
            "mobilenumber": logs[i].mobilenumber
        },
        JSON.stringify(obj), {
            upsert: true
        },
        function(err, Summary) {
            if (err) {
                console.warn(err.message);
            } else {
                console.log(obj);
            }
        }
    )



via its me

No comments:

Post a Comment