Opérations d'ajout, de suppression, de modification et de requête de base mongodb

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

Insérez la description de l'image ici

Mais il n'y a pas de contenu dans la base de données, il sera affiché après l'insertion du contenu

[É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-aYqDZ4K6-1611392732249) (C: \ Users \ jry \ AppData \ Roaming \ Typora \ typora-user-images \ image-20210123135240492.png)]

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
Insérez la description de l'image ici

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

Insérez la description de l'image ici

Quatrièmement, supprimez la collection

db.tc (nom de la collection) .drop ()
Insérez la description de l'image ici

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érez la description de l'image ici

Insérer plusieurs enregistrements

var nom du document = db.collection nom.insertOne ({})

Insérez la description de l'image ici

Insérer plusieurs documents

var nom du document = db.collection nom.insertMany ({})

Insérez la description de l'image ici

Insérez la description de l'image ici

Insérer un tableau

1. Créez d'abord un tableau
Insérez la description de l'image ici
Insérez la description de l'image ici
Insérez la description de l'image ici
Insérez la description de l'image ici

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}})

Insérez la description de l'image ici

Toutes les mises à jour qui remplissent les conditions

db.employee.update ({"sex": "男"}, {$ set: {"age": 18}}, {multi: true} )

Insérez la description de l'image ici

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

Insérez la description de l'image ici

Interroger les enregistrements dont l'âge est inférieur ou égal à 19 ans

Insérez la description de l'image ici

Vérifiez si l'âge est inférieur à 30 ans et l'adresse est à Yan'an

db.employee.find ({"age": {$ lt: 20}, "address": "延安"})

Insérez la description de l'image ici

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": "延安" }]})

Insérez la description de l'image ici

'$ 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": "延安" }]}))
Insérez la description de l'image ici
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

Insérez la description de l'image ici

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": "延安"}]})

Insérez la description de l'image ici

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": / 蒋 /})

Insérez la description de l'image ici

commencez par le mot cheval dans le nom

db.employee.find ({"nom": / ^ 马 /})

Insérez la description de l'image ici

Le nom qui se termine par le mot selon

db.employee.find ({"nom": / 依 $ /})

Insérez la description de l'image ici

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": / 依 $ /})

Je suppose que tu aimes

Origine blog.csdn.net/rraxx/article/details/113058327
conseillé
Classement