安装
docker pull mongo:latest
启动
docker run -itd --name mongo -p 27017:27017 mongosh --auth
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
docker进入
docker exec -it mongo mongosh admin
db.auth("admin","123456");
基础操作
db.system.users.find().pretty();
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
);
show dbs;
db;
use dbname;
db.dropDataBase();
db.createCollection("chat");
show tables;
db.chat.insertOne({"id":1,"name":"张三"});
db.chat.find().pretty();
db.chat.find({"id":2}).pretty();
db.chat.find({"id":{"$gt":3}}).pretty();
db.chat.find({"name":/张/});
db.chat.drop();
db.chat.update({"name":"张三"},{$set:{"name":"战三钩子"}});
db.chat.find().sort({"id":1});
db.chat.find().sort({"id":-1});
高级应用
mapreduce
地理位置
db.test.insert({"address" : "南京 禄口国际机场","loc" : { "type": "Point", "coordinates": [118.783799,31.979234]}})
db.test.insert({"address" : "南京 浦口公园","loc" : { "type": "Point", "coordinates": [118.639523,32.070078]}})
db.test.insert({"address" : "南京 火车站","loc" : { "type": "Point", "coordinates": [118.803032,32.09248]}})
db.test.insert({"address" : "南京 新街口","loc" : { "type": "Point", "coordinates": [118.790611,32.047616]}})
db.test.insert({"address" : "南京 张府园","loc" : { "type": "Point", "coordinates": [118.790427,32.03722]}})
db.test.insert({"address" : "南京 三山街","loc" : { "type": "Point", "coordinates": [118.788135,32.029064]}})
db.test.insert({"address" : "南京 中华门","loc" : { "type": "Point", "coordinates": [118.781161,32.013023]}})
db.test.insert({"address" : "南京 安德门","loc" : { "type": "Point", "coordinates": [118.768964,31.99646]}})
db.test.ensureIndex({loc:"2dsphere"});
db.test.find({ "loc" : { "$near" : { "$geometry" : { "type" : "Point", "coordinates" : [118.783799, 31.979234] }, "$maxDistance" : 5000 } } });