mongodb
-
El número de puerto predeterminado de MYSQL: 3306
-
El número de puerto predeterminado de Mongodb: 27017
Sistema de gestión de bases de datos no relacionales NOSQL
Se utiliza para el almacenamiento de datos a gran escala (p. Ej., Google, Facebook) no requiere un modelo fijo y se puede escalar horizontalmente sin operaciones innecesarias.
¿Qué es MongoDB?
Escrito en C ++, es un sistema de base de datos de código abierto basado en almacenamiento de archivos distribuido.
En el caso de una carga alta, agregar más nodos puede garantizar el rendimiento del servidor.
- Proporcione soluciones escalables de almacenamiento de datos de alto rendimiento para aplicaciones WEB.
- Los datos de MongoDB se almacenan como un documento y la estructura de datos se compone de pares clave-valor (clave => valor)
- Los documentos MongoDB son similares a los objetos JSON y los valores de campo pueden incluir otros documentos, matrices y matrices de documentos
Análisis de conceptos
SQL | MongoDB | explique |
---|---|---|
mesa | colección | colocar |
fila (una fila, un registro) | documento | Documentación |
columna | campo | Dominio (par clave-valor) |
índice | índice | índice |
mesa se une | No se admite la consulta de conexión de tabla | |
Clave primaria | Clave primaria | Clave principal, mongoDB establece automáticamente el campo _id como clave principal |
base de datos
db. Las diferentes bases de datos se colocan en diferentes archivos.
show dbs puede mostrar una lista de todas las bases de datos
nombre de almacenamiento de datos:
No puede ser una cadena de caracteres (""), sin espacios,. ,, /, \ 0 (caracteres vacíos) Es mejor no utilizar chino (pueden aparecer caracteres confusos en chino), todo en minúsculas, hasta 64 bytes
Documentación:
Par clave-valor, BSON
{”site":"xxxxx","age":25}
Cliente y servicio de base de datos | ||
---|---|---|
MYSQL / Oracle | mongod | |
Nota:
- Los pares clave-valor del documento están ordenados
- Distinguir tipo y caso
- No puede haber claves duplicadas,
- Clave: cadena (utf-8), no puede contener caracteres vacíos
- . $ Tiene un significado especial, solo se usa en un entorno específico
- La clave al principio de _ está reservada (no es estrictamente necesaria)
objeto
onject_id puede ser de cualquier tipo, generalmente el valor predeterminado es el tipo de objeto
La marca de tiempo creada se guarda en onject_id, por lo que no es necesario que la cree usted mismo (marca de tiempo)
[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlinking. Se recomienda guardar la imagen y subirla directamente (img-IpPiTmmw-1611392732234) (C: \ Users \ jry \ AppData \ Roaming \ Typora \ typora-user-images \ image-20210123134431496.png)]
Obtenga la hora de creación del documento a través de la función getTimestap
Convertir a forma de cadena por str
fecha
[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-sangrado. Se recomienda guardar la imagen y subirla directamente (img-iqoE0EMq-1611392732240) (C: \ Users \ jry \ AppData \ Roaming \ Typora \ typora-user-images \ image-20210123134725981.png)]
[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlinking. Se recomienda guardar la imagen y subirla directamente (img-eBUxv13Z-1611392732243) (C: \ Users \ jry \ AppData \ Roaming \ Typora \ typora-user-images \ image-20210123134808410.png)]
Operaciones básicas de MongoDB
Uno, crea una base de datos
usar xxx
Pero no hay contenido en la base de datos, se mostrará después de insertar el contenido.
Dos, borra la base de datos
db.dropDatabase ()
Cambie a otra base de datos para ver que se ha eliminado
Tres, crea una colección
- db.createCollection ("employee") crea una colección de employee
- db.mycol (nombre de la colección) .insert ({"_ id": 01, "name": "马云"}) Insertar directamente, no hay colección creará automáticamente una colección mycol
- mostrar colecciones muestra las colecciones en la base de datos
- db ver la base de datos actual
Cuarto, elimine la colección
db.tc (nombre de la colección) .drop ()
Cinco, inserta documentos en la colección.
db.collection name.insert (document) Si _id existe, se lanzará la excepción de clave principal y no se guardarán los datos actuales
db.collection name.save (document) Si _id existe, actualice los datos, si no existe, inserte los datos
Insertar un registro
var document name = db.collection name.insert ({insertar contenido del par clave-valor})
Insertar varios registros
var nombre del documento = db.nombre de la colección.insertarOne ({})
Insertar varios documentos
var document name = db.collection name.insertMany ({})
Insertar matriz
1. Primero crea una matriz
En sexto lugar, la actualización del documento.
db.collection name.updata (
{consulta — condición de la consulta}
upsert – true: insertar si no existe, actualizar si existe, falso: no actualizar
{$ set "{valor actualizado}}: por qué actualizar el valor
multi: verdadero / falso — verdadero: actualiza todos los valores calificados, falso: actualiza solo el primer valor calificado
)
Actualizar un valor
db.employee.update ({"sex": "男"}, {$ set: {"age": 18}})
Todas las actualizaciones que cumplen las condiciones
db.employee.update ({"sex": "男"}, {$ set: {"age": 18}}, {multi: true} )
Siete, consulta de documentos
1. Marca de condición
$ gt | > |
---|---|
$ gte | > = |
$ lt | < |
$ lte | <= |
$ hacer | ! = |
$ eq | 、 = |
Consultar registros cuya antigüedad sea inferior a 19
Consultar registros cuya antigüedad sea menor o igual a 19
Compruebe si la edad es menor de 30 años y la dirección está en Yan'an
db.employee.find ({"edad": {$ lt: 20}, "dirección": "延安"})
2. Y O condición
Y
db.employee.find ({' Error de análisis de KaTeX: esperado'} ', obtuvo' EOF 'al final de la entrada: y': [{"edad": { lt: 20}}, {“dirección”: “延安” }]})
'$ and' -y carácter relacional
[{Condición 1}, {Condición 2}]
O
db.employee.find ({' Error de análisis de KaTeX: esperado'} ', obtuvo' EOF 'al final de la entrada: o': [{"edad": {
lt: 20}}, {“dirección”: “延安” }]}))
db.employee.find ({" Error de análisis de KaTeX: esperado '}', obtuvo 'EOF' al final de la entrada:…": "女"}, {"edad": {
gt: 10}} ]})
El género es femenino, edad> 10
Consulta sobre robo 3T
Y y O combinados
Primero y luego o
db.employee.find ({"sal": { Error de análisis de KaTeX: 'EOF' esperado, obtuvo '}' en la posición 9: gt: 17000} ̲, ' o': [{"sex": "女"}, {"Dirección": "延安"}]})
db.employee.find ({“sal”: { Error de análisis de KaTeX: 'EOF' esperado, obtenido '}' en la posición 9: gt: 19000} ̲, " o": [{“sex”: “女”}, {"Dirección": "延安"}]})
db.getCollection('employee').find({"age":{$lt:30},"address":"郑州"})db.employee.find({"age":{$lt:30},"address":"郑州"})
//查询age小于30并且地址是郑州的document
db.employee.find({'$and':[{"age":{$lt:30}},{"address":"郑州"}]}) db.getCollection('employee').find({})
//查询age小于30或address是洛阳document
db.employee.find({'$or':[{"age":{$lt:30}},{"address":"洛阳"}]})
//查询sex为女或address是南京的document
db.employee.find({'$or':[{"sex":"女"},{"address":"南京"}]})
// (price>70 and (publish="机械工业出版社" or public="新疆儿童出版社"))
db.db_book.find({"price":{$gt:70},'$or':[{"publish":"机械工业出版社"},{"publish":"新疆儿童出版社"}]})
8. Consulta aproximada
- /contenido/
- / ^ Lo que comienza con /
- / Termina con $ /
Aquellos con Jiang en su nombre
db.employee.find ({"nombre": / 蒋 /})
empezar con la palabra caballo en el nombre
db.employee.find ({"nombre": / ^ 马 /})
El nombre que termina con la palabra según
db.employee.find ({"nombre": / 依 $ /})
Nueve, borra documentos
db.collection name.remove ({especificar condiciones})
db.employee.remove({_id:1002}) 删除_id为1002的文档
db.collection name.remove (condición de eliminación, 1)
db.employee.remove({name:/诸/},1) 删除名字中有诸的,并且只删除一个文档
El nombre que termina con la palabra según
db.employee.find ({"nombre": / 依 $ /})