MongoDb

From Hawk Wiki
Revision as of 03:22, 8 June 2019 by Hall (Talk | contribs) (Mongodb update record based on existing value)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Install mongodb on mac

brew uninstall mongodb mongodb@3.2 mongodb@3.4 || true
brew install mongodb@3.6
brew unlink mongodb && brew link --force --overwrite mongodb@3.6
brew services restart mongodb@3.6
rm ~/Library/LaunchAgents/*mongodb*
ln -sfv /usr/local/Cellar/mongodb@3.6/*/*.plist ~/Library/LaunchAgents

Get around mac max file limit

run

sudo launchctl limit maxfiles 1000000 1000000

Then add line below to ~/.bash_profile

ulimit -n 65536 65536

If want to do this automatically at start up add into this file /etc/launchd.conf

limit maxfiles 1000000 1000000

edit mongo config

sudo vim /usr/local/etc/mongod.conf

Method2

echo kern.maxfiles=65536 | sudo tee -a /etc/sysctl.conf
echo kern.maxfilesperproc=65536 | sudo tee -a /etc/sysctl.conf
sudo sysctl -w kern.maxfiles=65536
sudo sysctl -w kern.maxfilesperproc=65536

echo "ulimit -n 65536 65536" >> ~/.bash_profile
# auto start mongodb on start up
echo "pgrep mongod" >> ~/.bash_profile

Search by timestamp

search from a certain timestamp

db.getCollection('XXX').find({t: {$gte: new ISODate("2018-01-01T21:56:47Z")}});

search last 5 minutes

db.getCollection('XXX').find({t: {$gte: new Date(ISODate().getTime() - 1000 * 60 * 5)}})

Mongodb update record based on existing value

db.person.find().snapshot().forEach(
    function (elem) {
        db.person.update(
            {
                _id: elem._id
            },
            {
                $set: {
                    name: elem.firstname + ' ' + elem.lastname
                }
            }
        );
    }
);

mongodb insertMany is 10 times faster than insertOne

I found out this the hard way. But be sure to use find and insertMany as much as you can