mongoDB

在 CentOS 上安装 MongoDB

在 Ubuntu 上安装 MongoDB

MongoDB使用详解

mongodb 命令行连接及基础命令

MongoDB 应用场景

MongoDB、HBase、Redis 等 NoSQL 优劣势、应用场景

数据库分类及主流数据库对比

MongoDB集群模式详解及应用实战

MongoDB副本集(Replica Sets)集群部署

云数据库MongoDB版支持单节点、副本集和分片集群三种部署架构,具备安全审计、时间点备份等多项企业能力。
在互联网、物联网、游戏、金融等领域被广泛采用。

1)弱一致性(最终一致),更能保证用户的访问速度
2)查询与索引方式灵活,是最像SQL的Nosql
3)内置GridFS,支持大容量的存储
4)内置Sharding,支持复制集、主备、互为主备、自动分片等特性
5)第三方支持丰富 6)性能优越
Install mongodb on centOS

#vim /etc/yum.repos.d/mongodb-org-8.0.repo
[mongodb-org-8.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/8.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-8.0.asc

#yum update
#yum install mongodb-org
#systemctl start mongod

Install mongoDB on Ubuntu

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list   

sudo apt-get install -y mongodb-org
systemctl daemon-reload
systemctl start mongod


安装测试数据
curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json

mongo
> db.restaurants.find().limit(1).pretty()
> db.restaurants.drop()

mongosh --host localhost:27017 -u root -p 'yourpassword'

show dbs
use test
db.dropdatabase()

show collections
db.restaurants.drop()

db.stu.insert({name:'zhangsan', gender:1})
db.stu.insert({_id:"20170101", name:'zhangsan', gender:1})
db.stu.save()

db.stu.find({name:'zhangsan'})
db.stu.findOne({age:20})

db.stu.update({name:'zhangsan', {name:'wangwu'}}) 更新匹配的第一条,其他值会被删除
db.stu.update({name:'zhangsan', {$set:{name:'hys'}}}) 更新匹配的第一条,其他值不会被删除
db.stu.update{{}, {$set:{gender:0}}, {multi:true}} 跟新全部,其他值不会被删除

db.stu.remove({name:'wangwu'}, {justOne:true}) 删除一条
db.stu.remove({gender:2}) 删除全部

db.stu.find({age: {$gte:18}})
db.stu.find({age:{$in:[18,28]}})
db.stu.find({age:{$gte:18}, sex:1})
db.stu.find({$or:[{age:{$gt:18}}, {sex:1}]})

db.stu.find({name:/^xiao/})
db.stu.find({name:{$regex:'^xiao'}})

db.stu.find().limit(2)
db.stu.find().skip(2)
db.stu.find().limit(1).skip(2)
db.stu.find().limit(2).skip(1)

db.stu.find().sort({sex:-1,age:1})

db.stu.find({sex:1}).count()
db.stu.count({age:{$gt:20},sex:1})

db.stu.distinct('sex', {age: {$gt:18}})