MongoDB analytical concept
Whether we learn what database should learn one of the fundamental concepts in mongodb basic concept is that documents, collections, databases, here we introduce one by one.
The following table will help you easier to understand some of the concepts Mongo:
SQL Terminology / Concepts | MongoDB term / concept | explain |
---|---|---|
database | database | database |
table | collection | Database table / Collections |
row | document | Line data recording / Documentation |
column | field | Data Field / Domain |
index | index | index |
table joins | Table joins, MongoDB does not support | |
primary key | primary key | Primary key, MongoDB automatically _id field as the primary key |
By following figure examples, we can more intuitive understanding of Mongo some concepts:
database
A mongodb can create multiple databases.
The default database MongoDB is "db", the database is stored in the data directory.
A single instance of MongoDB can accommodate multiple independent databases, each with its own set of permissions and different databases are also placed in different files.
"show dbs" command to display a list of all the data.
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > show dbs local 0.078GB test 0.078GB >
The implementation of "db" command to display the current database object or collection.
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > db test >
Run "use" command, you can connect to a specific database.
> use local switched to db local > db local >
Examples of the above command, "local" is that you want to link database.
In the next chapter we will explain in detail the use of MongoDB in command.
Database also be identified by name. Database name can be any of the following conditions UTF-8 string.
- It can not be an empty string ( "").
- Not contain '' (space)., $, /, \ And \ 0 (null Yu Fu).
- It should be all lowercase.
- Up to 64 bytes.
Some database names are reserved and can directly access these databases have a special role.
- admin: from the point of view of the authority, which is the "root" database. If you add a user to the database, the user automatically inherits all the permissions database. Some specific server-side commands can only be run from the database, such as a list of all the database or server.
- local: This data will never be copied, can be used to store any collection is limited to a single local server
- config: When Mongo for fragmentation is set to, config database used internally for storing slice information.
File
Documentation is a key (key-value) of (ie BSON). MongoDB document need not be provided the same field, the same field and does not require the same data type, which is a relational database is very different, MongoDB also very prominent feature.
A simple document examples are as follows:
{"site":"www.w3big.com", "name":"本教程"}
The following table lists the RDBMS and MongoDB corresponding terms:
RDBMS | MongoDB |
---|---|
database | database |
form | set |
Row | File |
Row | Field |
Joint Table | Embedded document |
Primary key | Primary key (MongoDB provides a key for the _id) |
Database services and clients | |
Mysqld / Oracle | mongod |
mysql / sqlplus | mongo |
have to be aware of is:
- Document key / value pairs are ordered.
- Document may be not only the value of the string inside the double quotes can also be several other data types (or even the entire embedded documents).
- MongoDB to distinguish the types and sensitive.
- MongoDB document can not have duplicate keys.
- Key document is a string. With few exceptions, the key can use any UTF-8 characters.
Key documents naming convention:
- Key can not contain \ 0 (null character). This character is used to indicate the end of the bond.
- . And $ have special meaning only be used under certain circumstances.
- To underscore "_" at the beginning of the keys are reserved (not strictly required).
set
MongoDB is a collection document group, similar to the RDBMS (relational database management system: Relational Database Management System) in the form.
Collection exists in the database, a collection of no fixed structure, which means that you can insert in the collection of data in different formats and types, but usually we insert a set of data will have some relevance.
For example, we can document these different data structures into the collection:
{"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.w3big.com","name":"本教程","num":5}
When the first document into the collection will be created.
Legitimate collection name
- Collection name can not be empty string "."
- Set name can not contain \ 0 character (null character), this character indicates the end of a collection of names.
- Set name can not be "system." At the beginning, which is reserved for the system set prefix.
- User-created collection name can not contain reserved characters. Some drivers do support the collection which contains the name, this is because some system-generated collection contains the character. Unless you want to access a collection of such a system is created, otherwise do not appear in $ name inside.
The following examples:
db.col.findOne()
capped collections
Capped collections are fixed-size collection.
It has high performance characteristics and the queue expired (expired in accordance with the order of insertion). Somewhat similar and "RRD" concept.
Capped collections are automatically inserted in order to maintain high performance object. It is ideal for functions and similar standard logging collection of different, you have to explicitly create a capped collection, a collection of the specified size, in bytes. collection of data storage space values assigned in advance.
It is noted that the specified storage size of the database that contains the header information.db.createCollection("mycoll", {capped:true, size:100000})
- In capped collection, you can add new objects.
- Can be updated, however, the object will not increase the storage space. If you increase the update will fail.
- The database does not allow deletion. Use drop () method to delete all the rows collection.
- Note: After you delete, you must explicitly recreate the collection.
- In 32bit machines, capped collection is the largest storage 1e9 (1X10 9) bytes.
Metadata
Information in the database is stored in the collection. They use the namespace system:
dbname.system.*
In MongoDB database namespace <dbname> .system * that contains a variety of system information, special collections (Collection), as follows:
Collection namespace | description |
---|---|
dbname.system.namespaces | List all namespaces. |
dbname.system.indexes | List all indexes. |
dbname.system.profile | It contains the database summary (profile) information. |
dbname.system.users | List all users can access the database. |
dbname.local.sources | It contains a copy of the end (slave) server information and status. |
To modify the system object in the collection has the following restrictions.
In the {{system.indexes}} insert data, you can create an index. But otherwise the table information is immutable (the special drop index command will automatically update the relevant information).
{{System.users}} are modifiable. {{System.profile}} is deleted.
MongoDB data type
The following table MongoDB several commonly used data types.
type of data | description |
---|---|
String | String. Storing data commonly used data types. In MongoDB, UTF-8 encoded string is legal. |
Integer | Integer values. It used to store values. Depending on the server you are using, it can be divided into 32-bit or 64-bit. |
Boolean | Boolean value. For storing Boolean values (true / false). |
Double | Double-precision floating-point value. For storing floating-point values. |
Min / Max keys | The minimum value and a value BSON (binary JSON) element and the highest value of the relative ratio. |
Arrays | For array or list or store multiple values for a key. |
Timestamp | Timestamp. Modify or add records document the specific time. |
Object | For embedded documents. |
Null | It creates an empty value. |
Symbol | symbol. This data type is substantially equal to the string type, but the difference is that it is generally for the use of special symbols typed language. |
Date | Date Time. UNIX time format used to store the current date or time. You can specify your own date and time: Date object is created, the incoming date information. |
Object ID | Object ID. ID used to create the document. |
Binary Data | Binary data. For storing binary data. |
Code | Tag type. JavaScript code is used to store documents. |
Regular expression | Regular expression type. For storing the regular expression. |