Analyse du concept MongoDB
Quelle que soit la base de données que nous étudions, nous devons apprendre les concepts de base. Les concepts de base de mongodb sont les documents, les collections et les bases de données. Présentons-les un par un ci-dessous.
Le tableau suivant vous aidera à comprendre plus facilement certains concepts en Mongo :
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
Grâce à l'exemple ci-dessous, nous pouvons également comprendre certains concepts de Mongo de manière plus intuitive :
Base de données
Un mongodb Plusieurs bases de données peuvent être créé.
La base de données par défaut de MongoDB est "db", qui est stockée dans le répertoire de données.
Une seule instance de MongoDB peut héberger plusieurs bases de données indépendantes, chacune avec sa propre collection et ses propres autorisations, et différentes bases de données sont également placées dans différents fichiers. La commande
"show dbs" peut afficher une liste de toutes les données.
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > show dbs local 0.078GB test 0.078GB >
Exécutez la commande "db" pour afficher l'objet ou la collection actuelle de la base de données.
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > db test >
Exécutez la commande "use" pour vous connecter à une base de données spécifiée.
> use local switched to db local > db local >
Dans l'exemple de commande ci-dessus, "local" est la base de données à laquelle vous souhaitez créer un lien.
Dans le prochain chapitre, nous expliquerons en détail l'utilisation des commandes dans MongoDB.
Les bases de données sont également identifiées par leur nom. Le nom de la base de données peut être n'importe quelle chaîne UTF-8 répondant aux conditions suivantes.
ne peut pas être une chaîne vide ("").
ne doit pas contenir ' ' (espace), ., $, / et Du point de vue des autorisations, il s'agit de la base de données « racine ». Si un utilisateur est ajouté à cette base de données, il hérite automatiquement de toutes les autorisations de la base de données. Certaines commandes côté serveur ne peuvent également être exécutées qu'à partir de cette base de données, comme la liste de toutes les bases de données ou l'arrêt du serveur.
- local : Ces données ne sont jamais copiées et peuvent être utilisées pour stocker toute collection limitée à un seul serveur local
: Lorsque Mongo est utilisé pour la configuration du partitionnement, la base de données de configuration est utilisée en interne pour enregistrer des informations sur les fragments.
Document
Le document est une paire clé-valeur (c'est-à-dire BSON). Les documents MongoDB n'ont pas besoin d'avoir les mêmes champs, et les mêmes champs n'ont pas besoin d'être du même type de données. Ceci est très différent des bases de données relationnelles et constitue également une fonctionnalité très importante de MongoDB.- Un exemple de documentation simple est le suivant :
{"site":"www.php.cn", "name":"php中文网"}
Le tableau suivant répertorie les termes correspondant aux SGBDR et à MongoDB :Il est à noter que :
Les paires clé/valeur dans le document sont ordonnées.
La valeur dans le document peut non seulement être une chaîne entre guillemets doubles, mais également plusieurs autres types de données (ou même l'intégralité du document intégré).
MongoDB est sensible au type et à la casse.
Les documents MongoDB ne peuvent pas avoir de clés en double.
La clé du document est une chaîne. À quelques exceptions près, les clés peuvent utiliser des caractères UTF-8 arbitraires.
Convention de dénomination des clés du document :
les clés ne peuvent pas contenir Contrairement aux collections standard, vous devez explicitement créer une collection plafonnée. Spécifiez la taille d'une collection en octets. La valeur de l'espace de stockage des données de la collection est allouée à l'avance.
Il convient de noter que la taille de stockage spécifiée inclut les informations d'en-tête de la base de données.
{"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.php.cn","name":"php中文网","num":5}
Dans une collection plafonnée, vous pouvez ajouter de nouveaux objets.
peut être mis à jour, cependant, l'objet n'augmente pas l'espace de stockage. Si elle est augmentée, la mise à jour échouera. La base de données ne permet pas la suppression. Utilisez la méthode drop() pour supprimer toutes les lignes de la collection. Remarque : Après la suppression, vous devez explicitement recréer la collection.
Sur une machine 32 bits, la capacité de stockage maximale d'une collection plafonnée est de 1e9 (1X109) octets.
Métadonnées
Les informations de la base de données sont stockées dans des collections. Ils utilisent l'espace de noms système :
db.col.findOne()
Dans la base de données MongoDB, l'espace de noms <dbname>.system.* est une collection spéciale (Collection) contenant diverses informations système, comme suit :
集合命名空间 | 描述 |
---|---|
dbname.system.namespaces | 列出所有名字空间。 |
dbname.system.indexes | 列出所有索引。 |
dbname.system.profile | 包含数据库概要(profile)信息。 |
dbname.system.users | 列出所有可访问数据库的用户。 |
dbname.local.sources | 包含复制对端(slave)的服务器信息和状态。 |
Il existe les restrictions suivantes concernant la modification des objets dans la collection système.
Insérez des données dans {{system.indexes}} pour créer un index. Mais sinon, les informations de la table sont immuables (la commande spéciale drop index mettra automatiquement à jour les informations pertinentes).
{{system.users}} est modifiable. {{system.profile}} est amovible.
Types de données MongoDB
Le tableau suivant présente plusieurs types de données couramment utilisés dans MongoDB.
数据类型 | 描述 |
---|---|
String | 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。 |
Integer | 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。 |
Boolean | 布尔值。用于存储布尔值(真/假)。 |
Double | 双精度浮点值。用于存储浮点值。 |
Min/Max keys | 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。 |
Arrays | 用于将数组或列表或多个值存储为一个键。 |
Timestamp | 时间戳。记录文档修改或添加的具体时间。 |
Object | 用于内嵌文档。 |
Null | 用于创建空值。 |
Symbol | 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。 |
Date | 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 |
Object ID | 对象 ID。用于创建文档的 ID。 |
Binary Data | 二进制数据。用于存储二进制数据。 |
Code | 代码类型。用于在文档中存储 JavaScript 代码。 |
Regular expression | 正则表达式类型。用于存储正则表达式。 |