Updated 9000 records in a few seconds.
By mistake, I log message.chat.id as LongNumber in mongodb. I need to convert them string. With mongo shell, this can be done quite easily.
First, Login to my mongo shell
sudo docker exec -it mongo-fengdrawbot mongo --username restheart #Enter password to login #switch to db collection use messages
Then I used this script to save the data needs to be converted in to another collection
db.messages.find({ "message.chat.id": { "$lt": 0 } }).forEach(function (x) { x.message.chat.id = x.message.chat.id + ""; db.messages_bk.save(x); });
I verified the converted data with mongo express, everything looks good. then I run the following script to update the original records.
db.messages.find({ "message.chat.id": { "$lt": 0 } }).forEach(function (x) { x.message.chat.id = x.message.chat.id + ""; db.messages.save(x); });