javascript - How to prevent update function insert to the MongoDB from Meteor? -


i have meteor.method check existing document. when not found insert document, second time found update , insert. please check , fix following code:

'upload': function upload(data, name, eventid) {     const wb = xlsx.read(data, {type:'binary'});     var checkupdate;     xlsx.utils.sheet_to_json(wb.sheets[wb.sheetnames[0]]).foreach(r => {         r.owner = this.userid,         r.username = meteor.user().username,         r.updatedat = new date(),         r.amount = number(r.amount),         r.eventid = eventid,         r.firstname = r.firstname.trim(),         r.lastname = r.lastname.trim(),         registers.findone({ firstname: r.firstname, lastname: r.lastname, eventid: eventid }) ?          registers.update({ firstname: r.firstname, lastname: r.lastname, eventid: eventid }, { $set: {updatedat: r.updatedat, amount: r.amount } })         :          r.createdat = new date(),         registers.insert(r)     })      return wb; }, 

first time, if database empty, insert new document. second time, if found document update document, , insert new document update function not insert function.

meteor:primary> db.registers.find({ eventid: "azrumf45q8sbggry2" }) { "_id" : "mzqd73vsgyxrtyekj", "salution" : "mr.", "firstname" : "qwer", "lastname" : "asdf", "gender" : "male", "age" : "38", "province" : "chiangmai", "amount" : 1000, "owner" : "rbjwm4prthwao2vrs", "username" : "mai", "updatedat" : isodate("2017-09-11t12:28:36.966z"), "eventid" : "azrumf45q8sbggry2", "createdat" : isodate("2017-09-11t12:20:49.731z") } { "_id" : "suzphykvqqcyjzj5p", "salution" : "mr.", "firstname" : "abcd", "lastname" : "efgh", "gender" : "male", "age" : "30", "province" : "chiangmai", "amount" : 500, "owner" : "rbjwm4prthwao2vrs", "username" : "mai", "updatedat" : isodate("2017-09-11t12:28:37.017z"), "eventid" : "azrumf45q8sbggry2", "createdat" : isodate("2017-09-11t12:20:49.739z") } { "_id" : "qygf7alvbdwo5amua", "salution" : "mr.", "firstname" : "qwer", "lastname" : "asdf", "gender" : "male", "age" : "38", "province" : "chiangmai", "amount" : 1000, "owner" : "rbjwm4prthwao2vrs", "username" : "mai", "updatedat" : isodate("2017-09-11t12:28:36.966z"), "eventid" : "azrumf45q8sbggry2" } { "_id" : "xysbxgiz5t9qxad6r", "salution" : "mr.", "firstname" : "abcd", "lastname" : "efgh", "gender" : "male", "age" : "30", "province" : "chiangmai", "amount" : 500, "owner" : "rbjwm4prthwao2vrs", "username" : "mai", "updatedat" : isodate("2017-09-11t12:28:37.017z"), "eventid" : "azrumf45q8sbggry2" } 

from code, when add twice, second time, lose createdat field. don't know why.????

i have got !!!! thank comments

'upload': function upload(data, name, eventid) {     const wb = xlsx.read(data, {type:'binary'});     var checkupdate;     xlsx.utils.sheet_to_json(wb.sheets[wb.sheetnames[0]]).foreach(r => {         if (!registers.findone({ firstname: r.firstname, lastname: r.lastname, eventid: eventid })) {         r.owner = this.userid,         r.username = meteor.user().username,         r.updatedat = new date(),         r.amount = number(r.amount),         r.eventid = eventid,         r.firstname = r.firstname.trim(),         r.lastname = r.lastname.trim(),         r.createdat = new date(),         registers.insert(r)         } else {         r.owner = this.userid,         r.username = meteor.user().username,         r.updatedat = new date(),         r.amount = number(r.amount),         r.eventid = eventid,         r.firstname = r.firstname.trim(),         r.lastname = r.lastname.trim(),         registers.update({ firstname: r.firstname, lastname: r.lastname, eventid: eventid }, { $set: {updatedat: r.updatedat, amount: r.amount } })         }     })     return wb; }, 

i think looking collection.upsert method.

basically modifies 1 or more documents in collection, or insert 1 if no matching documents found. returns object keys numberaffected (the number of documents modified) , insertedid (the unique _id of document inserted, if any).


Comments

Popular posts from this blog

Sort a complex associative array in PHP -

vb.net - How to ignore if a cell is empty nothing -

recursion - Can every recursive algorithm be improved with dynamic programming? -