Maison > Article > base de données > Introduction détaillée aux opérations courantes de MongoDB
MongoDB est écrit en langage C++ et est un système de base de données open source basé sur le stockage de fichiers distribués. Dans des conditions de charge élevée, l'ajout de nœuds supplémentaires peut garantir les performances du serveur. MongoDB vise à fournir des solutions de stockage de données évolutives et performantes pour les applications WEB.
1. Ajouter, supprimer, modifier et vérifier
Afficher toutes les collections de la base de données actuelle, utilisez la commande
show collections 或使用 show tables
Il y en a deux façons de créer une collection, d'afficher Créer et de créer implicitement
显示创建可以使用命令 db.createCollection(“集合名称") 隐式创建可以使用命令 db.集合名称.insert({}), 指创建集合并同时向集合中插入数据, 例如:db.customer.insert({name:”jack”})
Ajouter un document à une collection
Utiliser la commande db.collectionname.insert({} ), par exemple :
db.user1.insert({name:”jack”,age:20})
Supprimer les documents de la collection
使用命令 db.集合名称.remove({删除条件}), 不加删除条件为删除集合中的所有文档: 例如,删除c1集合中的所有文档 db.c1.remove() 删除c1集合中name为user1的文档 db.c1.remove({name:”user1”})
Interroger les documents de la collection dans
db.集合名称.find({条件}) 或者使用 db.集合名称.findOne() 查询第一个文档
interroger les documents de la collection et renvoyer certaines valeurs clés spécifiques
en plus de la requête expression De plus, MongoDB prend également en charge certaines options de paramètres supplémentaires.
Si vous souhaitez uniquement renvoyer certaines valeurs de champ :
Renvoyer tous les champs sauf le champ d'âge
db.user.find({},{age:0});
Renvoyer tout colonnes avec tags=tennis sauf commentaires
db.posts.find({tags:'tennis'},{comments:0});
Renvoyer le champ de nom avec userid=16
db. user.find({userid:16},{name:1});
{"_id":16,"name":"user16"}
Renvoyer tous les z de x=john Field
db.things.find({x:"john"},{z:1});
Interrogez les documents de la collection à l'aide d'expressions conditionnelles (cdf98572887b2c0e8ee7a799db6e5a4c=,!=)
//Supérieur à : field > value
db.collection.find({field:{$gt:value}});
//Inférieur à : field 083d7082f10e7630412d40da350c7a46= value
db. collection.find ({field:{$gte:value}});
//Inférieur ou égal à : field <= value
db.collection.find({field:{$lte :value}});
//Différent de : field != value
db.collection.find({field:{$ne:value}});
Requête documents de la collection, statistiques (compter), trier (trier), pagination (sauter, limiter)
db.customer.count(); db.customer.find().count(); db.customer.find({age:{$lt:5}}).count(); db.customer.find().sort({age:1}); 降序-1 db.customer.find().skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3).count(); db.customer.find().sort({age:-1}).skip(2).limit(3).count(0); db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);
Interroger les documents de la collection
$all est principalement utilisé pour interroger la relation d'inclusion du tableau dans
Tant qu'une des conditions de requête n'est pas incluse,
$in ne sera pas renvoyé, similaire à IN $nin in
base de données relationnelle, opposé à $in
$or, équivalent à OR dans une base de données relationnelle, indiquant la relation de ou,
Par exemple, pour interroger des documents portant le nom user2 ou 3 ans, la commande est :
db .customer.find({$or:[{name:”user2”},{age:3}]})
$nor, ce qui signifie filtrer extraire certaines données en fonction de conditions, par exemple, si le nom de la requête n'est pas user2, pour les documents dont l'âge n'est pas 3, la commande est :
db.customer.find({$nor:[{name:”user2” },{age:3}]})
$exists, pour interroger des documents pour lesquels une certaine clé existe ou pour lesquels une certaine clé n'existe pas dans la collection, par exemple, pour interroger tous les documents avec la clé de nom dans la collection client, vous pouvez utiliser
db.customer.find({name:{$exists:1} })
$exists:1 signifie vrai, signifie qu'il existe
$exists : 0 signifie faux, signifie qu'il n'existe pas
Curseur
Ensemble de mise à jour Syntaxe du document
: db.collection.update(criteria, objNew, upsert, multi )
description du paramètre :
critères : objet utilisé pour définir les conditions de requête
objNew : objet utilisé pour définir le contenu de la mise à jour
upsert : si l'enregistrement existe déjà, mettez-le à jour, sinon ajoutez un nouvel enregistrement, la valeur est 0 ou 1
multi : S'il y a plusieurs enregistrements qui remplissent les conditions, s'il faut tous les mettre à jour, prenez La valeur est 0 ou 1
Remarque : Par défaut, seul le premier enregistrement qualifiant sera mis à jour
Généralement, les deux derniers paramètres sont respectivement 0,1, soit :
db collection.update(criteria,objNew,0,1)
Change. le document nommé user1 dans la collection pour nommer jack:
db.c1.update({name: "user1"},{ name:"jack"})
$set est utilisé pour spécifier la valeur d'une clé Si la clé n'existe pas, créez-la. Par exemple :
Pour ajouter une adresse au document nommé user1, vous pouvez utiliser la commande :
db.c1.update({name:”user1”},{$set:{address:”bj”}} ,0, 1)
Changez l'adresse du document nommé user1 en tj, laissez les autres paires clé-valeur inchangées, la commande est :
db.c1.update({name:” user1"},{ $set:{address:"tj"}},0,1)
Utilisez $inc pour ajouter 1 à l'âge nommé user1 dans l'ensemble, en laissant les autres clés inchangées
. $inc signifie faire un certain Ajouter ou soustraire la valeur spécifiée de la valeur clé
db.c1.update({name:"user1"},{$inc:{age:1}})
$unset est utilisé pour supprimer une clé
Par exemple, pour supprimer la clé d'adresse dans le document nommé user1, vous pouvez utiliser la commande :
db.c1.update({name:”user1”},{ $unset :{address:1}},0,1)
2. Index :
Les index sont utilisés pour accélérer les requêtes. Un index de base de données est similaire à un index de livre : avec un index, vous n'avez pas besoin de parcourir l'intégralité du livre, mais la base de données peut effectuer une recherche directement dans l'index, ce qui accélère la vitesse de recherche de plusieurs ordres de grandeur. Une fois qu'une entrée est trouvée dans l'index, vous pouvez accéder directement à l'emplacement du document cible.
Index normal :
Créer : db.collection.ensureIndex({key:1})
Afficher les informations associées sur l'index : db.collection.stats()
Afficher l'index utilisé par la requête Situation : db.collection.find({key:value}).explain()
Supprimer l'index : db.collection.dropIndex({key:1})
La suppression de la collection supprimera également l'index dans la collection Supprimer tout
Index unique :
Créer : db.collection.ensureIndex({key:1}, {unique:true})
Afficher les informations associées sur l'index : db.collection .stats()
Afficher l'utilisation de l'index dans la requête : db.collection.find({key:value}).explain()
Supprimer l'index : db.collection.dropIndex({key:1})
Supprimez la collection, tous les index de la collection seront également supprimés
3. Collection plafonnée (collection plafonnée)
Une collection fixe fait référence à une collection qui est créé à l’avance et a une taille fixe.
Fonctionnalités de collection fixe : Une collection fixe ressemble beaucoup à une file d'attente en anneau. Si l'espace est insuffisant, le document le plus ancien sera supprimé pour faire de la place aux nouveaux documents. De manière générale, les collections fixes conviennent à tout scénario dans lequel vous souhaitez éliminer automatiquement les attributs expirés sans trop de restrictions opérationnelles.
Créez une collection fixe :
db.createCollection("collectionName",{capped:true,size:100000,max:100});
size spécifie la taille de la collection, l'unité est Ko. , max précise Nombre de documents
Lors de la spécification de la limite supérieure du nombre de documents, la taille doit également être spécifiée. Le mécanisme d'élimination ne fonctionne qu'en fonction du nombre de documents lorsque la capacité n'est pas pleine. Si la capacité est pleine, le mécanisme d'élimination fonctionnera en fonction de la capacité.
4. Sauvegarde (mongodump) et récupération (mongorestore)
MongoDB fournit des fonctions de sauvegarde et de récupération, qui sont mongodump.exe et mongorestore dans le répertoire de téléchargement de MongoDB. exe (c'est-à-dire la commande dans le répertoire bin mongodb)
Pour sauvegarder les données, utilisez la commande suivante :
mongodump -h dbhost -d dbname -o dbdirectory
-h : Le adresse du serveur où se trouve MongDB, Par exemple : 127.0.0.1, bien sûr vous pouvez également spécifier le numéro de port : 127.0.0.1:27017
-d : L'instance de base de données qui doit être sauvegardée, par exemple : test
-o : L'emplacement de stockage des données de sauvegarde, par exemple : c:datadump , bien sûr, le répertoire doit être créé
à l'avance Une fois la sauvegarde terminée, le système crée automatiquement un répertoire de test dans le répertoire de vidage. . Ce répertoire
stocke les données de sauvegarde de l'instance de base de données.
Pour restaurer les données, utilisez la commande suivante :
mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h : adresse du serveur MongoDB
-d : l'instance de base de données qui doit être restauré, par exemple : test, bien sûr, ce nom peut aussi être différent de celui utilisé lors de la sauvegarde, comme test2
-directoryperdb : l'emplacement des données de sauvegarde, par exemple : c:datadumptest
5. Importer (mongoimport) et exporter ( mongoexport)
Pour exporter des données, vous pouvez utiliser la commande :
mongoexport -h dbhost -d dbname -c collectionName -o output
Description du paramètre :
-h Adresse de la base de données
- d Spécifie la bibliothèque utilisée
-c Spécifie la collection à exporter
-o Spécifie le nom du fichier à exporter
Exemple :
mongoexport -h localhost:27017 -d test -c c4 - o d:/beifeng/c4.txt
Pour importer des données, vous pouvez utiliser la commande :
mongoimport -h dbhost -d dbname -c collectionname L'adresse du fichier...
Description du paramètre :
-h Adresse de la base de données
-d précise la bibliothèque utilisée
-c précise la collection à importer
adresse du fichier local...
Exemple :
mongoimport -h localhost:27017 -d test -c cctv d:/beifeng/c4.txt
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!