Connect to Mongo database
mongo
Connect to Mongo on a different port (May be needed. Port is for UniFi server)
mongo -port 27117
Show Databases
show dbs
Use database
use dbname
Show tables/collections
show collections
or
show tables
List contents of table/collection
db.collection.find()
Example: (This example prints everything in the “admin” collection)
db.admin.find()
Find info that line that whose name is admin
db.admin.find({name : "admin" })
Find everything in a table, but only print columns that are named “name, email, and x_shadow”
db.admin.find({ }, { name : "", email : "", "x_shadow" : "" })
List users
show users
Authenticate
db.auth("username","password")
Insert into table/collection
d = {"data":"data"} db.collection.insert(d)
Update a line, for example a users password. Swap out the ObjectId for the ID that mongo gives you when you list the admins or users. You will need to swap out the hash for the hash of the password you want.
db.admin.update({"_id" : ObjectId("a328bf90547ehc429a03ed85")}, {$set: { "x_shadow" : "$6$XB32GMXr$8dUt9huJzzL6O.gGZbs7QH1npldbzBzNDt/uUO1bI3b7Ij3YipgubtVHwincUUZjnDLh.KDI36uh2gUCID9yb1"}});
Example:
d = {"name":"admin","lang":"en_US","x_password":"password","time_created":"","last_site_name":"default"} db.admin.insert(d)
Delete line from table/collection
db.collection.remove()
Example: (This will look for all the “rows” where the “name” contains “admin” and remove it)
db.admin.remove({ name: "admin"})
UniFI Specific
The following commands are specifically for a UniFi server.
Show UniFi Sites
db.site.find().forEach(printjson);
Or
mongo --port 27117 ace --eval "db.site.find().forEach(printjson);"
Show UniFi admins
db.admin.find().forEach(printjson);
Or
mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"