Analisis konsep MongoDB
Tidak kira pangkalan data yang kita pelajari, kita harus mempelajari konsep asas dalam mongodb ialah dokumen, koleksi dan pangkalan data.
Jadual berikut akan membantu anda memahami beberapa konsep dalam Mongo dengan lebih mudah:
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
Melalui contoh di bawah, kita juga boleh memahami beberapa konsep dalam Mongo dengan lebih intuitif:
Pangkalan Data
A mongodb Pelbagai pangkalan data boleh dicipta.
Pangkalan data lalai MongoDB ialah "db", yang disimpan dalam direktori data.
Satu contoh MongoDB boleh menempatkan berbilang pangkalan data bebas, setiap satu dengan koleksi dan kebenarannya sendiri, dan pangkalan data yang berbeza juga diletakkan dalam fail yang berbeza. Perintah
"show dbs" boleh memaparkan senarai semua data.
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > show dbs local 0.078GB test 0.078GB >
Laksanakan perintah "db" untuk memaparkan objek atau koleksi pangkalan data semasa.
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > db test >
Jalankan arahan "use" untuk menyambung ke pangkalan data yang ditentukan.
> use local switched to db local > db local >
Dalam contoh arahan di atas, "tempatan" ialah pangkalan data yang anda ingin pautkan.
Dalam bab seterusnya kami akan menerangkan secara terperinci penggunaan arahan dalam MongoDB.
Pangkalan data juga dikenal pasti mengikut nama. Nama pangkalan data boleh berupa mana-mana rentetan UTF-8 yang memenuhi syarat berikut.
tidak boleh menjadi rentetan kosong ("").
tidak boleh mengandungi ' ' (ruang), ., $, /, dan Dari perspektif kebenaran, ini ialah pangkalan data "root". Jika pengguna ditambahkan ke pangkalan data ini, pengguna secara automatik mewarisi semua kebenaran pangkalan data. Arahan bahagian pelayan tertentu juga hanya boleh dijalankan daripada pangkalan data ini, seperti menyenaraikan semua pangkalan data atau menutup pelayan.
- tempatan: Data ini tidak sekali-kali disalin dan boleh digunakan untuk menyimpan sebarang koleksi terhad kepada satu pelayan tempatan
: Apabila Mongo digunakan untuk persediaan sharding, pangkalan data konfigurasi digunakan secara dalaman untuk menyimpan maklumat tentang shard.
Dokumen
Dokumen ialah pasangan nilai kunci (iaitu BSON). Dokumen MongoDB tidak perlu mempunyai medan yang sama, dan medan yang sama tidak perlu daripada jenis data yang sama Ini sangat berbeza daripada pangkalan data hubungan dan juga merupakan ciri MongoDB yang sangat menonjol.- Contoh dokumentasi mudah adalah seperti berikut:
{"site":"www.php.cn", "name":"php中文网"}
Jadual berikut menyenaraikan istilah yang sepadan dengan RDBMS dan MongoDB:Perlu diambil perhatian bahawa:
Pasangan kunci/nilai dalam dokumen disusun.
Nilai dalam dokumen bukan sahaja boleh menjadi rentetan di dalam petikan berganda, tetapi juga beberapa jenis data lain (atau malah keseluruhan dokumen terbenam).
MongoDB adalah sensitif jenis dan huruf besar.
Dokumen MongoDB tidak boleh mempunyai kunci pendua.
Kunci dokumen ialah rentetan. Dengan beberapa pengecualian, kunci boleh menggunakan aksara UTF-8 sewenang-wenangnya.
Konvensyen penamaan kunci dokumen:
kunci tidak boleh mengandungi Tidak seperti koleksi standard, anda mesti membuat koleksi yang dihadkan secara eksplisit. Nyatakan saiz koleksi dalam bait. Nilai ruang storan data koleksi diperuntukkan terlebih dahulu.
Perlu diambil perhatian bahawa saiz storan yang ditentukan termasuk maklumat pengepala pangkalan data.
{"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.php.cn","name":"php中文网","num":5}
Dalam koleksi berhad, anda boleh menambah objek baharu.
boleh dikemas kini, walau bagaimanapun, objek tidak menambah ruang storan. Jika ditingkatkan, kemas kini akan gagal. Pangkalan data tidak membenarkan pemadaman. Gunakan kaedah drop() untuk memadam semua baris dalam koleksi. Nota: Selepas pemadaman, anda mesti mencipta semula koleksi secara eksplisit.
Pada mesin 32bit, kapasiti storan maksimum koleksi berhad ialah 1e9 (1X109) bait.
Metadata
Maklumat pangkalan data disimpan dalam koleksi. Mereka menggunakan ruang nama sistem:
db.col.findOne()
Dalam pangkalan data MongoDB, ruang nama <dbname>.system.* ialah koleksi khas (Koleksi) yang mengandungi pelbagai maklumat sistem, seperti berikut:
集合命名空间 | 描述 |
---|---|
dbname.system.namespaces | 列出所有名字空间。 |
dbname.system.indexes | 列出所有索引。 |
dbname.system.profile | 包含数据库概要(profile)信息。 |
dbname.system.users | 列出所有可访问数据库的用户。 |
dbname.local.sources | 包含复制对端(slave)的服务器信息和状态。 |
Terdapat sekatan berikut untuk mengubah suai objek dalam koleksi sistem.
Sisipkan data dalam {{system.indexes}} untuk mencipta indeks. Tetapi sebaliknya maklumat jadual tidak boleh diubah (arahan indeks penurunan khas akan mengemas kini maklumat yang berkaitan secara automatik).
{{system.users}} boleh diubah suai. {{system.profile}} boleh dialih keluar.
Jenis data MongoDB
Jadual berikut menunjukkan beberapa jenis data yang biasa digunakan dalam 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 | 正则表达式类型。用于存储正则表达式。 |