In addition to the charts that follow, you might want to consider the Frequently Asked Questions section for a selection of common questions about MongoDB.
Executables
The following table presents the MySQL/Oracle executables and the corresponding MongoDB executables.
MySQL/Oracle | MongoDB | |
---|---|---|
Database Server | mysqld/oracle | mongod |
Database Client | mysql/sqlplus | mongo |
Terminology and Concepts
The following table presents the various SQL terminology and concepts and the corresponding MongoDB terminology and concepts.
SQL Terms/Concepts | MongoDB Terms/Concepts |
---|---|
database | database |
table | collection |
row | document or BSON document |
column | field |
index | index |
table joins | embedded documents and linking |
primary key Specify any unique column or column combination as primary key. |
In MongoDB, the primary key is automatically set to the _id field. |
aggregation (e.g. group by) |
aggregation framework |
Examples
The following table presents the various SQL statements and the corresponding MongoDB statements. The examples in the table assume the following conditions:
The SQL examples assume a table named users.
-
The MongoDB examples assume a collection named users that contain documents of the following prototype:
{
_id: ObjectID("509a8fb2f3f4948bd2f983a0"),
user_id: "abc123",
age: 55,
status: 'A'
}
Create and Alter
The following table presents the various SQL statements related to table-level actions and the corresponding MongoDB statements.
SQL Schema Statements | MongoDB Schema Statements | Reference |
---|---|---|
CREATE TABLE users ( |
Implicitly created on first insert operation. The primary key_id is automatically added if _id field is not specified. db.users.insert( { However, you can also explicitly create a collection: db.createCollection("users") |
See insert() andcreateCollection()for more information. |
ALTER TABLE users |
Collections do not describe or enforce the structure of its documents; i.e. there is no structural alteration at the collection level. However, at the document level, update() operations can add fields to existing documents using the $set operator. db.users.update( |
See the Data Modeling Considerations for MongoDB Applications,update(), and $set for more information on changing the structure of documents in a collection. |
ALTER TABLE users |
Collections do not describe or enforce the structure of its documents; i.e. there is no structural alteration at the collection level. However, at the document level, update() operations can remove fields from documents using the $unset operator. db.users.update( |
See Data Modeling Considerations for MongoDB Applications,update(), and $unsetfor more information on changing the structure of documents in a collection. |
CREATE INDEX idx_user_id_asc |
db.users.ensureIndex( { user_id: 1 } ) |
See ensureIndex()and indexes for more information. |
CREATE INDEX |
db.users.ensureIndex( { user_id: 1, age: -1 } ) |
See ensureIndex()and indexes for more information. |
DROP TABLE users |
db.users.drop() |
See drop() for more information. |
Insert
The following table presents the various SQL statements related to inserting records into tables and the corresponding MongoDB statements.
SQL INSERT Statements | MongoDB insert() Statements | Reference |
---|---|---|
INSERT INTO users(user_id, |
db.users.insert( { |
See insert() for more information. |
Select
The following table presents the various SQL statements related to reading records from tables and the corresponding MongoDB statements.
SQL SELECT Statements | MongoDB find() Statements | Reference |
---|---|---|
SELECT * |
db.users.find() |
See find()for more information. |
SELECT id, user_id, status |
db.users.find( |
See find()for more information. |
SELECT user_id, status |
db.users.find( |
See find()for more information. |
SELECT * |
db.users.find( |
See find()for more information. |
SELECT user_id, status |
db.users.find( |
See find()for more information. |
SELECT * |
db.users.find( |
See find()and $ne for more information. |
SELECT * |
db.users.find( |
See find()and $and for more information. |
SELECT * |
db.users.find( |
See find()and $or for more information. |
SELECT * |
db.users.find( |
See find()and $gt for more information. |
SELECT * |
db.users.find( |
See find()and $lt for more information. |
SELECT * |
db.users.find( |
See find(),$gt, and$lte for more information. |
SELECT * |
db.users.find( |
See find()and $regexfor more information. |
SELECT * |
db.users.find( |
See find()and $regexfor more information. |
SELECT * |
db.users.find( { status: "A" } ).sort( { user_id: 1 } ) |
See find()and sort()for more information. |
SELECT * |
db.users.find( { status: "A" } ).sort( { user_id: -1 } ) |
See find()and sort()for more information. |
SELECT COUNT(*) |
db.users.count() or db.users.find().count() |
See find()and count()for more information. |
SELECT COUNT(user_id) |
db.users.count( { user_id: { $exists: true } } ) or db.users.find( { user_id: { $exists: true } } ).count() |
See find(),count(), and $existsfor more information. |
SELECT COUNT(*) |
db.users.count( { age: { $gt: 30 } } ) or db.users.find( { age: { $gt: 30 } } ).count() |
See find(),count(), and $gt for more information. |
SELECT DISTINCT(status) |
db.users.distinct( "status" ) |
See find()anddistinct()for more information. |
SELECT * |
db.users.findOne() or db.users.find().limit(1) |
See find(),findOne(), and limit()for more information. |
SELECT * |
db.users.find().limit(5).skip(10) |
See find(),limit(), and skip()for more information. |
EXPLAIN SELECT * |
db.users.find( { status: "A" } ).explain() |
See find()andexplain()for more information. |
Update Records
The following table presents the various SQL statements related to updating existing records in tables and the corresponding MongoDB statements.
SQL Update Statements | MongoDB update() Statements | Reference |
---|---|---|
UPDATE users |
db.users.update( |
See update(), $gt, and $set for more information. |
UPDATE users |
db.users.update( |
See update(), $inc, and $set for more information. |
Delete Records
The following table presents the various SQL statements related to deleting records from tables and the corresponding MongoDB statements.
SQL Delete Statements | MongoDB remove() Statements | Reference |
---|---|---|
DELETE FROM users |
db.users.remove( { status: "D" } ) |
See remove() for more information. |
DELETE FROM users |
db.users.remove( ) |
See remove() for more information. |