mongodb
-
Le numéro de port par défaut de MYSQL: 3306
-
Le numéro de port par défaut de Mongodb: 27017
Système de gestion de base de données non relationnelle NOSQL
Utilisé pour le stockage de données à très grande échelle (par exemple: Google, Facebook) ne nécessite pas de modèle fixe et peut être mis à l'échelle horizontalement sans opérations inutiles
Qu'est-ce que MongoDB?
Écrit en C ++, il s'agit d'un système de base de données open source basé sur un stockage de fichiers distribué.
En cas de charge élevée, l'ajout de nœuds supplémentaires peut garantir les performances du serveur.
- Fournir des solutions de stockage de données évolutives hautes performances pour les applications WEB
- Les données MongoDB sont stockées sous forme de document et la structure de données est composée de paires clé-valeur (clé => valeur)
- Les documents MongoDB sont similaires aux objets JSON et les valeurs de champ peuvent inclure d'autres documents, tableaux et tableaux de documents
Analyse de concept
SQL | MongoDB | Explique |
---|---|---|
table | collection | ensemble |
ligne (une ligne, un enregistrement) | document | Documentation |
colonne | domaine | Domaine (paire clé-valeur) |
indice | indice | indice |
jointures de table | La requête de connexion de table n'est pas prise en charge | |
clé primaire | clé primaire | Clé primaire, mongoDB définit automatiquement le champ _id comme clé primaire |
base de données
db. Différentes bases de données sont placées dans différents fichiers
show dbs peut afficher une liste de toutes les bases de données
nom du stockage de données:
Ne peut pas être une chaîne de caractères (""), pas d'espaces,. ,, /, \ 0 (caractères vides) Il est préférable de ne pas utiliser de chinois (des caractères chinois déformés peuvent apparaître), tous en minuscules, jusqu'à 64 octets
Documentation:
Paire clé-valeur, BSON
{”site":"xxxxx","age":25}
Service de base de données et client | ||
---|---|---|
MYSQL / Oracle | Mongod | |
Remarque:
- Les paires clé-valeur dans le document sont classées
- Distinguer le type et le cas
- Il ne peut y avoir aucune clé en double,
- Clé: chaîne (utf-8), ne peut pas contenir de caractères vides
- . $ A une signification particulière, utilisée uniquement dans un environnement spécifique
- La clé au début de _ est réservée (pas strictement obligatoire)
objet
onject_id peut être de n'importe quel type, généralement la valeur par défaut est le type d'objet
L'horodatage créé est enregistré dans onject_id, il n'est donc pas nécessaire de créer l'horodatage par vous-même (timestap)
[Échec du transfert de l'image du lien externe. Le site source dispose peut-être d'un mécanisme anti-hotlinking. Il est recommandé d'enregistrer l'image et de la télécharger directement (img-IpPiTmmw-1611392732234) (C: \ Users \ jry \ AppData \ Roaming \ Typora \ typora-user-images \ image-20210123134431496.png)]
Obtenez l'heure de création du document via la fonction getTimestap
Convertir en forme de chaîne par str
Date
[Échec du transfert de l'image du lien externe. Le site source dispose peut-être d'un mécanisme anti-sangsue. Il est recommandé d'enregistrer l'image et de la télécharger directement (img-iqoE0EMq-1611392732240) (C: \ Users \ jry \ AppData \ Roaming \ Typora \ typora-user-images \ image-20210123134725981.png)]
[Échec du transfert de l'image du lien externe. Le site source dispose peut-être d'un mécanisme anti-hotlinking. Il est recommandé d'enregistrer l'image et de la télécharger directement (img-eBUxv13Z-1611392732243) (C: \ Users \ jry \ AppData \ Roaming \ Typora \ typora-user-images \ image-20210123134808410.png)]
Opérations de base de MongoDB
Premièrement, créez une base de données
utiliser xxx
Mais il n'y a pas de contenu dans la base de données, il sera affiché après l'insertion du contenu
Deuxièmement, supprimez la base de données
db.dropDatabase ()
Basculez vers une autre base de données pour voir qu'elle a été supprimée
Troisièmement, créez une collection
- db.createCollection ("employee") crée une collection d'employés
- db.mycol (nom de la collection) .insert ({"_ id": 01, "name": "马云"}) Insérer directement, il n'y a pas de collection créera automatiquement une collection mycol
- afficher les collections afficher les collections sous la base de données
- db afficher la base de données actuelle
Quatrièmement, supprimez la collection
db.tc (nom de la collection) .drop ()
Cinq, insérez des documents dans la collection
db.collection name.insert (document) Si _id existe, l'exception de clé primaire sera levée et les données actuelles ne seront pas enregistrées
db.collection name.save (document) Si _id existe, mettez à jour les données, s'il n'existe pas, insérez les données
Insérer un enregistrement
var document name = db.collection name.insert ({insert key-value pair content})
Insérer plusieurs enregistrements
var nom du document = db.collection nom.insertOne ({})
Insérer plusieurs documents
var nom du document = db.collection nom.insertMany ({})
Insérer un tableau
1. Créez d'abord un tableau
Sixièmement, la mise à jour du document
db.collection nom.updata (
{requête - condition de requête}
upsert – true: insérer s'il n'existe pas, mettre à jour s'il existe, false: ne pas mettre à jour
{$ set "{valeur mise à jour}} - pourquoi mettre à jour la valeur
multi: vrai / faux - vrai: mettre à jour toutes les valeurs qualifiées, faux: mettre à jour uniquement la première valeur qualifiée
)
Mettre à jour une valeur
db.employee.update ({"sex": "男"}, {$ set: {"age": 18}})
Toutes les mises à jour qui remplissent les conditions
db.employee.update ({"sex": "男"}, {$ set: {"age": 18}}, {multi: true} )
Sept, requête de document
1. Marque de condition
$ gt | > |
---|---|
$ gte | > = |
$ lt | < |
$ lte | <= |
$ne | ! = |
$ eq | 、 = |
Interroger les enregistrements dont l'âge est inférieur à 19 ans
Interroger les enregistrements dont l'âge est inférieur ou égal à 19 ans
Vérifiez si l'âge est inférieur à 30 ans et l'adresse est à Yan'an
db.employee.find ({"age": {$ lt: 20}, "address": "延安"})
2. ET OU condition
ET
db.employee.find ({' Erreur d'analyse KaTeX: attendue'} ', a obtenu' EOF 'à la fin de l'entrée: et': [{"age": { lt: 20}}, {"adresse": "延安" }]})
'$ et' - et caractère relationnel
[{Condition 1}, {Condition 2}]
OU
db.employee.find ({' Erreur d'analyse KaTeX: attendue'} ', a obtenu' EOF 'à la fin de l'entrée: ou': [{"age": {
lt: 20}}, {"adresse": "延安" }]}))
db.employee.find ({" Erreur d'analyse KaTeX: attendue '}', a obtenu 'EOF' à la fin de l'entrée:…": "女"}, {"age": {
gt: 10}} ]})
Le sexe est une femme, âge> 10
Requête sur robo 3T
AND et OR combinés
D'abord et ensuite ou
db.employee.find ({"sal": { Erreur d'analyse KaTeX: 'EOF' attendu, a obtenu '}' à la position 9: gt: 17000} ̲, ' ou': [{"sex": "女"}, {"Adresse": "延安"}]})
db.employee.find ({"sal": { Erreur d'analyse KaTeX: 'EOF' attendu, a obtenu '}' à la position 9: gt: 19000} ̲, " ou": [{"sex": "女"}, {"Adresse": "延安"}]})
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. Requête floue
- /teneur/
- / ^ Ce qui commence par /
- / Se termine par $ /
Ceux avec Jiang dans leur nom
db.employee.find ({"nom": / 蒋 /})
commencez par le mot cheval dans le nom
db.employee.find ({"nom": / ^ 马 /})
Le nom qui se termine par le mot selon
db.employee.find ({"nom": / 依 $ /})
Neuf, supprimer des documents
db.collection name.remove ({spécifier les conditions})
db.employee.remove({_id:1002}) 删除_id为1002的文档
db.collection name.remove (condition de suppression, 1)
db.employee.remove({name:/诸/},1) 删除名字中有诸的,并且只删除一个文档
Le nom qui se termine par le mot selon
db.employee.find ({"nom": / 依 $ /})