mongodb_logo

bài 1 mình đã có so sánh giữa SQL với mongoDB nhưng chỉ trên hình thức name định dạng ở đây chúng ta sẽ đi vào ánh xạ giữa các câu lệnh của SQL với mongoDB.

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 (Khóa Chính)

primary key

trong mongodb thì khóa chính được khởi tạo tự động là _id

Ví dụ

1. Create and Alter

SQL Schema Statements MongoDB Schema Statements
CREATE TABLE users (id MEDIUMINT NOT NULL AUTO_INCREMENT,user_id Varchar(30), age Number, status char(1),PRIMARY KEY (id)

)

tự động tạo tables khi dùng hàm inseart. ở đây _id primary key sẽ tự động khởi tạo nếu nó ko xác định giá trị

db.users.insert( {
user_id: “abc123″,
age: 55,
status: “A”
} )

hoặc có thể dùng hàm createCollection
db.createCollection(“users”)

ALTER TABLE users
ADD join_date DATETIME

Collections không thay đổi cấu trúc document của nó. tức là không thay đổi được Collections

Tuy nhiên, tại Docuemnt, update() có thể thêm các document hiện có bằng cách dùng $set
db.users.update(
{ },
{ $set: { join_date: new Date() } },
{ multi: true }
)

ALTER TABLE users
DROP COLUMN join_date
Tương tự, update() có thể xóa giá trị = hàm $unset.
db.users.update(
{ },
{ $unset: { join_date: “” } },
{ multi: true }
)
CREATE INDEX idx_user_id_asc
ON users(user_id)
db.users.createIndex( { user_id: 1 } )
CREATE INDEX idx_user_id_asc_age_desc
ON users(user_id, age DESC)
db.users.createIndex( { user_id: 1, age: -1 } )
DROP TABLE users db.users.drop()

2. Insert

SQL INSERT Statements MongoDB insert() Statements
INSERT INTO users(user_id, age, status)
VALUES (“bcd001″, 45, “A”)
db.users.insert(
{ user_id: “bcd001″, age: 45, status: “A” }
)

3. Select

SQL SELECT Statements MongoDB find() Statements
SELECT *
FROM users
db.users.find()
SELECT id,
user_id,
status
FROM users
db.users.find(
{ },
{ user_id: 1, status: 1 }
)
SELECT user_id, status
FROM users
db.users.find(
{ },
{ user_id: 1, status: 1, _id: 0 }
)
SELECT *
FROM users
WHERE status = “A”
db.users.find(
{ status: “A” }
)
SELECT user_id, status
FROM users
WHERE status = “A”
db.users.find(
{ status: “A” },
{ user_id: 1, status: 1, _id: 0 }
)
SELECT *
FROM users
WHERE status != “A”
db.users.find(
{ status: { $ne: “A” } }
)
SELECT *
FROM users
WHERE status = “A”
AND age = 50
db.users.find(
{ status: “A”,
age: 50 }
)
SELECT *
FROM users
WHERE status = “A”
OR age = 50
db.users.find(
{ $or: [ { status: “A” } ,
{ age: 50 } ] }
)
SELECT *
FROM users
WHERE age > 25
db.users.find(
{ age: { $gt: 25 } }
)
SELECT *
FROM users
WHERE age < 25
db.users.find(
{ age: { $lt: 25 } }
)
SELECT *
FROM users
WHERE age > 25
AND age <= 50
db.users.find(
{ age: { $gt: 25, $lte: 50 } }
)
SELECT *
FROM users
WHERE user_id like “%bc%”
db.users.find( { user_id: /bc/ } )
SELECT *
FROM users
WHERE user_id like “bc%”
db.users.find( { user_id: /^bc/ } )
SELECT *
FROM users
WHERE status = “A”
ORDER BY user_id ASC
db.users.find( { status: “A” } ).sort( { user_id: 1 } )
SELECT *
FROM users
WHERE status = “A”
ORDER BY user_id DESC
db.users.find( { status: “A” } ).sort( { user_id: -1 } )
SELECT COUNT(*)
FROM users
db.users.count()or
db.users.find().count()
SELECT COUNT(user_id)
FROM users
db.users.count( { user_id: { $exists: true } } )or
db.users.find( { user_id: { $exists: true } } ).count()
SELECT COUNT(*)
FROM users
WHERE age > 30
db.users.count( { age: { $gt: 30 } } )or
db.users.find( { age: { $gt: 30 } } ).count()
SELECT DISTINCT(status)
FROM users
db.users.distinct( “status” )
SELECT *
FROM users
LIMIT 1
db.users.findOne()or
db.users.find().limit(1)
SELECT *
FROM users
LIMIT 5
SKIP 10
db.users.find().limit(5).skip(10)
EXPLAIN SELECT * FROM users
WHERE status = “A”
db.users.find( { status: “A” } ).explain()

4. Update

SQL Update Statements MongoDB update() Statements
UPDATE users SET status = “C” WHERE age > 25 db.users.update(
{ age: { $gt: 25 } },
{ $set: { status: “C” } },
{ multi: true }
)
UPDATE users SET age = age + 3 WHERE status = “A” db.users.update(
{ status: “A” } ,
{ $inc: { age: 3 } },
{ multi: true }
)

5. Delete

SQL Delete Statements MongoDB remove() Statements
DELETE FROM users WHERE status = “D” db.users.remove( { status: “D” } )
DELETE FROM users db.users.remove({})

 

tuanthanhvoMongoDBDatabase,Mapping SQL to MongoDB,MongoDB
Ở bài 1 mình đã có so sánh giữa SQL với mongoDB nhưng chỉ trên hình thức name định dạng ở đây chúng ta sẽ đi vào ánh xạ giữa các câu lệnh của SQL với mongoDB. 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 (Khóa...