Instalar Mongodb6.X en Ubuntu22.04
1. Introducción a Mongodb
1.1 ¿Qué es MongoDB?
Mongodb es una base de datos NoSQL multiplataforma orientada a documentos. Utiliza BSON similar a JSON con un esquema opcional para almacenar datos. Las aplicaciones pueden recuperar información en formato JSON.
1.2 Ventajas de MongoDB
- Puede desarrollar rápidamente aplicaciones basadas en web, porque es flexible y no necesita crear tablas como bases de datos relacionales.
- MongoDB almacena documentos, que almacenan una estructura similar a json.El llamado json es una matriz de cadenas
1.3 Clasificación de la base de datos MongoDB
- Base de datos (base de datos): se utiliza para almacenar colecciones, y la base de datos también se divide en tamaños
- Colección: una colección es similar a una matriz y se utiliza para almacenar documentos
- Documento: El documento es la unidad más pequeña en la base de datos MongoDB
Relación MongoDB: base de datos (base de datos)> colección (colección)> documento (documento)
2. Instalar mongodb
2.1 Importar la clave pública de MongoDB6.0
root@Mongodb:~# curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
2.2 Actualizar el repositorio apt
root@Mongodb:~# apt update
2.3 Crear archivo de lista
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
2.4 Instalar la dependencia libssl1.1 de MongoDB
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
2.5 instalar mongodb
root@Mongodb:~# apt-get install -y mongodb-org
3. Inicie el servicio MongoDB
#启动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
4. Uso de MongoDB
4.1 Entrar en MongoDB
Debido a que la versión es 6.0, debe ingresarla en la terminal.Este mongosh
comando es equivalente al comando mongo antes de la versión 6.0
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>
4.2 Ver todas las bases de datos en la base de datos MongoDB
test> show dbs
admin 40.00 KiB
config 12.00 KiB
local 40.00 KiB
4.3 Abrir o crear una nueva base de datos
MongoDB no necesita crear documentos por adelantado, se crea automáticamente cuando se usa
test> use fib
switched to db fib
fib>
4.4 Agregar colección
Una colección es equivalente a una tabla en una base de datos mysql
fib> db.createCollection('teacher')
{ ok: 1 }
fib> show collections
teacher
4.5 Insertar datos
fib> db.teacher.insert({_id:1,sname:'张三',sage:20})
DeprecationWarning: Collection.insert() is deprecated. Use insertOne, insertMany, or bulkWrite.
{ acknowledged: true, insertedIds: { '0': 1 } }
4.6 Consultar todos los registros
fib> db.teacher.find()
[ { _id: 1, sname: '张三', sage: 20 } ]
4.7 Operación de actualización
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
}
4.8 Consulta
4.8.1 Consultar registros con sname='Li Si'
fib> db.teacher.find({sname:'李四'})
[ { _id: 1, sname: '李四', sage: 20 } ]
4.8.2 Consultar los datos del nombre de la columna especificada
fib> db.teacher.find({},{sname:1})
[ { _id: 1, sname: '李四' } ]
4.8.3 Consulta de condición Y
fib> db.teacher.find({sname:'李四',sage:20})
[ { _id: 1, sname: '李四', sage: 20 } ]
4.8.4 Consulta de condición OR
fib> db.teacher.find({$or:[{sage:20},{sage:21}]})
[ { _id: 1, sname: '李四', sage: 20 } ]
4.8.5 Salida formateada
fib> db.teacher.find().pretty()
[ { _id: 1, sname: '李四', sage: 20 } ]
4.9 borrar
4.9.1 Eliminar datos
fib> db.teacher.remove({sname:'李四'})
DeprecationWarning: Collection.remove() is deprecated. Use deleteOne, deleteMany, findOneAndDelete, or bulkWrite.
{ acknowledged: true, deletedCount: 1 }
4.9.2 Eliminar colección
fib> db.teacher.drop()
true