@yangwenbo
2023-03-01T16:21:11.000000Z
字数 3984
阅读 296
ubuntu系统
Mongodb是一个跨平台的面向文档的NoSQL数据库。它使用带有可选模式的类似JSON的BSON来存储数据。应用程序可以以JSON格式检索信息。
- 可以快速开发web型应用,因为灵活,不用像关系型数据库一样需要建表
- MongoDB存储的是文档(document),文档内存储的是类似json的结构,所谓json就是字符串数组
- 数据库(database):用来存储集合的,而且数据库也有分大小
- 集合(collection):集合类似于数组,用于存放文档的
- 文档(document):文档是MongoDB数据库中最小的单位
MongoDB关系: 数据库(database) > 集合(collection)> 文档(document)
root@Mongodb:~# curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
root@Mongodb:~# apt update
root@Mongodb:~# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list
root@Mongodb:~# apt update
root@Mongodb:~# curl -LO http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.21_amd64.deb
root@Mongodb:~# dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.21_amd64.deb
root@Mongodb:~# apt-get install -y mongodb-org
#启动MongoDB服务
root@Mongodb:~# systemctl start mongod
#检查MongoDB服务状态
root@Mongodb:~# systemctl status mongod |grep active
Active: active (running) since Tue 2023-02-21 16:54:50 CST; 10s ago
#设置服务开机自启动
root@Mongodb:~# systemctl enable mongod
因为版本是6.0,所以需要在终端输入mongosh
,该命令相当于6.0版本之前的mongo命令
root@Mongodb:~# mongosh
Current Mongosh Log ID: 63f48e2e5d50ed0f2ed35d3c
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.7.1
Using MongoDB: 6.0.4
Using Mongosh: 1.7.1
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.
------
The server generated these startup warnings when booting
2023-02-21T16:54:50.226+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
2023-02-21T16:54:50.700+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
2023-02-21T16:54:50.700+08:00: vm.max_map_count is too low
------
------
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
------
test>
test> show dbs
admin 40.00 KiB
config 12.00 KiB
local 40.00 KiB
MongoDB不需要预先创建文档,在使用时自动创建
test> use fib
switched to db fib
fib>
集合相当于mysql数据库中的表
fib> db.createCollection('teacher')
{ ok: 1 }
fib> show collections
teacher
fib> db.teacher.insert({_id:1,sname:'张三',sage:20})
DeprecationWarning: Collection.insert() is deprecated. Use insertOne, insertMany, or bulkWrite.
{ acknowledged: true, insertedIds: { '0': 1 } }
fib> db.teacher.find()
[ { _id: 1, sname: '张三', sage: 20 } ]
fib> db.teacher.update({_id:1},{$set:{sname:'李四'}})
DeprecationWarning: Collection.update() is deprecated. Use updateOne, updateMany, or bulkWrite.
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
fib> db.teacher.find({sname:'李四'})
[ { _id: 1, sname: '李四', sage: 20 } ]
fib> db.teacher.find({},{sname:1})
[ { _id: 1, sname: '李四' } ]
fib> db.teacher.find({sname:'李四',sage:20})
[ { _id: 1, sname: '李四', sage: 20 } ]
fib> db.teacher.find({$or:[{sage:20},{sage:21}]})
[ { _id: 1, sname: '李四', sage: 20 } ]
fib> db.teacher.find().pretty()
[ { _id: 1, sname: '李四', sage: 20 } ]
fib> db.teacher.remove({sname:'李四'})
DeprecationWarning: Collection.remove() is deprecated. Use deleteOne, deleteMany, findOneAndDelete, or bulkWrite.
{ acknowledged: true, deletedCount: 1 }
fib> db.teacher.drop()
true