Segundo Özsu e Valduriez (2020), o MongoDB armazena os documentos utilizando o BSON (um binário do JSON) e tem os identificadores universais gerados pelo próprio banco dentro do elemento ObjectID. Dentro doMongoDB, há uma variável db, na qual é possível referenciar o banco queserá utilizado.
A consulta dos documentos é realizada por meio do método de agrupamento e filtragem: o MapReduce. O embedding e o linking no MongoDB são seme-lhantes ao join da consulta SQL. O MongoDB permite acrescentar dadospor meio de um update ou pela função upserts, que atualiza o documento, caso exista, ou insere um novo.
Confira, a seguir, alguns exemplos comparativos entre o SQL comum e o contexto orientado a documentos.
-----------------------------------------
CREATE TABLE users (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
user_id Varchar(30),
age Number,
status char(1),
PRIMARY KEY (id)
)
-----------------------------------------
db.users.insert( { user_id: "abc123", age: 55, status: "A" } )
db.createColleation("users")
-----------------------------------------
Exclusão de um registro em um banco de dados relacional e dentro do MongoDB, respectivamente:
-----------------------------------------
DELETE FROM users WHERE status = "D"
DELETE FROM users
-----------------------------------------
db.users.remove( { status: "D" } )
db.users.remove( )
-----------------------------------------
Atualização de um registro em um banco de dados relacional e dentro do MongoDB, respectivamente:
-----------------------------------------
UPDATE users SET status = "C" WHERE age > 25
UPDATE users SET age = age + 3 WHERE status = “A”
-----------------------------------------
db.users.update( { age: { $gt: 25 } },{ $set: {status: "c"} } , {multi: true} )
db.users.update( {status: "A" }, { $inc: {age: 3} } , { multi: true } )
-----------------------------------------
Inserção de um registro em um banco de dados relacional e dentro do MongoDB, respectivamente:
-----------------------------------------
INSERT INTO users (user_id, age, status)
VALUES ("bcd001", 45, "A")
-----------------------------------------
db.users.insert( user id: "bcd001", age: 45, status: "A")
-----------------------------------------
Seleção de um registro em um banco de dados relacional e dentro do MongoDB, respectivamente:
-----------------------------------------
SELECT * FROM users WHERE age > 25 AND age <= 50
SELECT * FROM users WHERE user_id like "bc%"
-----------------------------------------
db.users.find( age: { $qt: 25, $lte: 50 ) )
db.users.find( {user_id: /^bc/} )
-----------------------------------------
Seleção com ordenação Sort por meio do campo user_id em um bancode dados relacional e dentro do MongoDB, respectivamente:
-----------------------------------------
SELECT * FROM users WHERE status = "A" ORDER BY user_id ASC
SELECT * FROM users WHERE status = "A" ORDER BY user_id DESC
-----------------------------------------
db.users.find( {status: "A" } ).sort( { user id: 1 } )
db.users.find( {status: "A" } ).sort( { user id: -1 } )