The traditional relational database is generally composed of three levels of database, table, records (record),
MongoDB are made up of three levels of databases (database), Collections (collection), document objects (documents)。 MongoDB for tables in relational databases, but there is no column, row, and relationship concept in the collection, which embodies the characteristics of pattern freedom.
Mysql |
Mongodb |
Description |
Mysqld |
Mongod |
Server daemon |
Mysql |
Mongo |
Client Tools |
Mysqldump |
Mongodump |
Logical Backup tool |
Mysql |
Mongorestore |
Logical Recovery Tool |
|
Db.repairdatabase () |
Repairing the database |
Mysqldump |
Mongoexport |
Data Export Tool |
Source |
Mongoimport |
Data Import Tool |
Grant * privileges on *.* to ... |
Db.adduser () Db.auth () |
New User and Permissions |
Show databases |
Show DBS |
Show Library List |
Show tables |
Show collections |
Show Table List |
Show slave status |
Rs.status |
Query master-Slave status |
Create table Users (a int, b int) |
Db.createcollection ("Mycoll", {capped:true, size:100000}) Another: The table can be created implicitly. |
Create a table |
Create INDEX idxname on users (name) |
Db.users.ensureIndex ({name:1}) |
Create an index |
Create INDEX idxname on users (Name,ts DESC) |
Db.users.ensureIndex ({name:1,ts:-1}) |
Create an index |
Insert into users values (1, 1) |
Db.users.insert ({a:1, b:1}) |
Insert Record |
Select A, B from users |
Db.users.find ({},{a:1, b:1}) |
Query table |
Select * from users |
Db.users.find () |
Query table |
Select * from users where age=33 |
Db.users.find ({age:33}) |
Conditional query |
Select A, b from users where age=33 |
Db.users.find ({age:33},{a:1, b:1}) |
Conditional query |
SELECT * from Users where age<33 |
Db.users.find ({' age ': {$lt: 33}}) |
Conditional query |
SELECT * from users where age>33 and age<=40 |
Db.users.find ({' age ': {$gt: $lte: 40}}) |
Conditional query |
SELECT * from users where a=1 and b= ' Q ' |
Db.users.find ({a:1,b: ' Q '}) |
Conditional query |
SELECT * from users where a=1 or b=2 |
Db.users.find ({$or: [{a:1}, {b:2}]}) |
Conditional query |
SELECT * from users limit 1 |
Db.users.findOne () |
Conditional query |
SELECT * from the users where name like "%joe%" |
Db.users.find ({name:/joe/}) |
Fuzzy query |
SELECT * from the users where name like "joe%" |
Db.users.find ({name:/^joe/}) |
Fuzzy query |
Select COUNT (1) from users |
Db.users.count () |
Get the number of table records |
Select COUNT (1) from the users where age>30 |
Db.users.find ({age: {' $gt ':}}). Count () |
Get the number of table records |
Select DISTINCT last_name from Users |
Db.users.distinct (' last_name ') |
Remove duplicate values |
SELECT * from users ' ORDER by name |
Db.users.find (). Sort ({name:-1}) |
Sort |
SELECT * from users ' ORDER by name DESC |
Db.users.find (). Sort ({name:-1}) |
Sort |
EXPLAIN SELECT * from Users where z=3 |
Db.users.find ({Z:3}). Explain () |
Get Storage Path |
Update users set a=1 where b= ' Q ' |
Db.users.update ({b: ' Q '}, {$set: {a:1}}, False, True) |
Update records |
Update users set a=a+2 where b= ' Q ' |
Db.users.update ({b: ' Q '}, {$inc: {a:2}}, False, True) |
Update records |
Delete from users where z= "abc" |
Db.users.remove ({z: ' abc '}) |
Delete a record |
|
Db. Users.remove () |
Delete all records |
Drop database IF EXISTS test; |
Use test Db.dropdatabase () |
Delete Database |
drop table IF EXISTS test; |
Db.mytable.drop () |
Delete Table/collection |
|
Db.adduser (' Test ', ' test ') |
Add user Readonly-->false |
|
Db.adduser (' Test ', ' test ', true) |
Add user Readonly-->true |
|
Db.adduser ("Test", "test222") |
Change Password |
|
Db.system.users.remove ({User: "Test"}) or Db.removeuser (' test ') |
Delete User |
|
Use admin |
Super User |
|
Db.auth (' Test ', ' test ') |
User authorization |
|
Db.system.users.find () |
View the list of users |
|
Show Users |
View All Users |
|
Db.printcollectionstats () |
View the status of each collection |
|
Db.printreplicationinfo () |
View Master-slave replication status |
|
Show profile |
View Profiling |
|
Db.copydatabase (' mail_addr ', ' mail_addr_tmp ') |
Copy Database |
|
Db.users.dataSize () |
To view the size of collection data |
|
Db. Users.totalindexsize () |
Size of query Index |
MongoDB Syntax
MongoDB the advantages of a lot of, such as multiple-column index, query can use some statistical functions, support for multiple conditions query, but the current multiple table query is not supported, you can find ways to solve the problem of multiple table query data redundancy.
MongoDB has a lot to do with data, and here's a few examples, mostly from official documents and partly for your own understanding.
Query Colls all data
Db.colls.find ()//select * from Colls
Query by specifying criteria
Db.colls.find ({' last_name ': ' Smith '});//select * from Colls where last_name= ' Smith '
Specifying a multiple-condition query
Db.colls.find ({x:3, y: "foo"});//select * from Colls where x=3 and y= ' foo '
Specify criteria range Query
Db.colls.find ({j: {$ne: 3}, K: {$gt: a});//select * from Colls where j!=3 and k>10
The query does not include a content
Db.colls.find ({}, {a:0});//query for all data except a 0
Support for, <=, ", >= query, need to replace the symbol for $LT, $lte, $GT, $gte
Db.colls.find ({"field": {$gt: Value}});
Db.colls.find ({"field": {$lt: Value}});
Db.colls.find ({"field": {$gte: Value}});
Db.colls.find ({"field": {$lte: Value}});
You can also do a range query on a field
Db.colls.find ({"field": {$gt: value1, $lt: value2}});
is not equal to the character $ne for the query
Db.colls.find ({x: {$ne: 3}});
In Query character $in
Db.colls.find ({"field": {$in: Array}});
Db.colls.find ({j:{$in: [2,4,6]}});
Not in query character $nin
Db.colls.find ({j:{$nin: [2,4,6]}});
Character $mod for modulo query
Db.colls.find ({A: {$mod: [1]}})/where a% 10 = 1
$all Query
Db.colls.find ({A: {$all: [2, 3]}});//Specifies that a satisfies any value in the array
$size Query
Db.colls.find ({A: {$size: 1}});//To query the number of objects, this query queries a record of the number of child objects of a 1
$exists Query
Db.colls.find ({A: {$exists: true}}); Data exists for object a
Db.colls.find ({A: {$exists: false}}); No data exists for object a
$type query $type value is the type value of bsonhttp://bsonspec.org/data
Db.colls.find ({A: {$type: 2}}); Match A is a string type of data
Db.colls.find ({A: {$type: 16}}); Match A is type int data
Using regular expression matching
Db.colls.find ({name:/acme.*corp/i});//similar to SQL
Inline Object Query
Db.colls.find ({"Author.name": "Joe"});
1.3.3 version and later version contains $not query
Db.colls.find ({name: {$not:/acme.*corp/i}});
Db.colls.find ({A: {$not: {$mod: [10, 1]}});
Sort () sorting
Db.colls.find (). Sort ({ts:-1});//1 for ascending 2 in descending order
Limit () to limit the number of query data returned
Db.colls.find (). Limit (10)
Skip () Skip some data
Db.colls.find (). Skip (10)
Snapshot () snapshot guarantees no duplicate data return or object loss
Count () to Count query objects
Db.students.find ({' address.state ': ' CA '}). Count ();//High efficiency
Db.students.find ({' address.state ': ' CA '}). ToArray (). length;//Inefficient
Group () is a grouping of query results similar to the group by function in SQL
Distinct () returns a value that is not repeated