Skip to content

mongo

docker

shell
port=27017
dbpath=/data/mongo_data
logpath=/data/mongo_log

docker run -it -d \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
-v /root/mongodb/data:/data/db \
-p 27017:27017 \
--network mongo-network \  
--name mongo \
--restart always mongo:latest \
-v root/mongodb/conf:/etc/mongo
--config /etc/mongo/mongo.conf

docker run -d \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
-v /root/mongodb/data:/data/db -p 27017:27017 \
--name mongo \
--restart always mongo

docker run -itd \
--name mongo \
-p 27017:27017 \ 
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
-v /root/mongodb/db:/data/db \
--restart always \
mongo:latest


docker run -itd \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
-v /root/mongodb/data1/db:/data/db \
--restart always \
--name mongo \
mongo:latest

docker exec -it mongo /bin/base
docker exec -it mongo sh
// 5.0以后
docker exec -it mongo /bin/mongosh -u user -p password
v
# 备份
mongodump -h 127.0.0.1:27017 -u root -p admin --authenticationDatabase admin -d ssss -o /db

连接数据库

mongod

https://www.jianshu.com/p/35135e913f8d

https://developer.aliyun.com/article/673956

mongodb

创建数据库

use 数据库名称 创建/打开数据库

show dbs 查看所有数据库

删除数据库

use 数据库名称 db.dropDatabase()

创建集合

sql
db.createCollection(name, options)

insert

db.集合名.insert({数据})
db.集合名.insert([{数据},{数据},[数据]])
db.集合名.insertOne({数据}) 插入一个
db.集合名.insertMany([{数据},{数据},{数据}]) 插入多个

use runoob
db.dropDatabase() 删除数据库
db.collection.drop() 删除集合
db.collection.remove({}) 清空集合
db.collection.remove({条件})
db.collection.remove({条件},{justOne:true}) 只删除一条

update

db.collection.updateOne({}, {$set:{}}) 符合条件的第一条
db.collection.updateMany({}, {$set:{}})  更新所有符合条件
不加 $set 会直接替换查找到的内容
  • $inc : 引用增加

    • db.table.updateMany({}, {$inc:{"score": 1}}) # 在原基础上给所有score +1
  • $set : 修改数据 (key不存在就添加)

    • db.table.update({"score": 65}, {$set: {"score": 80}})
  • $unset: 强制删除Field

    • db.table.update({}, {$unset:{"age": 15}}) # 删除所有 age 字段

find

db.collection.find(query, projection)
  • query :可选,使用查询操作符指定查询条件

  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

    {"_id":0,title:1} 0 不返回 1 返回

条件查询
  • $gt: (>) 大于
  • $lt: (<) 小于
  • $gte:(>=) 大于等于
  • $lte: (<= ) 小于等于
  • $ne: ( != ) 不等于
  • $eq: ( = ) 等于
db.collection.find({age:{$gte:50}})
db.collection.find({age:{$gt:50,$lt:}})
$gt -------- greater than  >

$lt -------- less than  <

$gte --------- gt equal  >=

$lte --------- lt equal  <=

$ne ----------- not equal  !=

$eq  --------  equal  =
  • $and

    db.collection.find( {k1:v1},{k2:v2} )
  • $or

    db.collection.find($Or:[ {k1:v1},{k2:v2}] )
  • $in

    db.collection.find($in:[ {k1:v1},{k2:v2}] )

排序

docker run -d
-e MONGO_INITDB_ROOT_USERNAME=root
-e MONGO_INITDB_ROOT_PASSWORD=admin
-v /root/mongodb/data:/data/db
-p 27017:27017
--name mongo
--restart always mongo:latest
-v root/mongodb/conf:/etc/mongo --config /etc/mongo/mongo.conf