1. Query Filter
Ví dụ muốn tìm row có column Country là Brazil , nhập filter
{ Country: "Brazil" }
Nhấn nút Reset để bỏ câu lệnh query filter
2. Chi tiết Where
$eq : bằng value được chỉ định.
$gt : lớn hơn value được chỉ định.
$gte : lớn hơn hoặc bằng value được chỉ định.
$in : nằm trong mảng value
$lt : nhỏ hơn value được chỉ định.
$lte : nhỏ hơn hoặc bằng value được chỉ định.
$ne So khớp tất cả giá trị ko bằng với value được chỉ định.
$nin So khớp tất cả giá trị ko bằng với value được chỉ định trong một mảng.
$exists : Có tồn tại hay ko
Nếu muốn tìm
+ OrderId bằng 995 - ($eq)
{OrderId : 995}
{OrderId : {$eq : 995 }}
+ OrderId Lớn hơn 995 - ($gt)
{OrderId : {$gt : 995 }}
+ start_date lớn hơn ngày 2017-05-01 - $gt "start_date": {$gt: new Date('2017-05-01')} "LastUpdatedDate" :{$gte : new Date().getTime() - (1000*86400)}
+ OrderId lớn hơn hoặc bằng 995 - ($gte)
OrderId : {$gte : 995 }
+ OrderId nằm trong mảng 995, 1708 - ($in)
OrderId : {$in : [995,1708] }
+ Vouchers không null - $ne
Vouchers : {$ne:null}
+ OrderCode string có chứa HCM (giống like %% SQL) - ($regex) - * Phân biệt chữ thường chữ hoa
OrderCode:{$regex:"HCM"}
+ OrderCode string có ký tự đầu là HCM (giống like ___% SQL) - ($regex)
OrderCode:{$regex:"^HCM"}
+ OrderCode string có ký tự đầu là HCM (giống like %___ SQL) - ($regex)
OrderCode:{$regex:"HCM$"}
+ Có column Vouchers ko và Voucher có khác null
Vouchers : {$exists : true, $ne : null},
+ Lấy giá trị trong mảng Array :
"Vouchers.Apply.ServiceCode" : 322
+ Kiểm tra phần tử thứ 2 của Array có tồn tại không :
"Vouchers.Apply.1" : {$exists : false}
String to Datetime
UpdateDateStr:{
$dateFromString: {
dateString: "2017-02-08T12:10:40.787"
}
}
{ $dateFromString: {
dateString: "2017-02-08T12:10:40.787",
timezone: "America/New_York"
} }
{ $dateFromString: {
dateString: "2017-02-08"
} }
{ $dateFromString: {
dateString: "06-15-2018",
format: "%m-%d-%Y"
} }
{ $dateFromString: {
dateString: "15-06-2018",
format: "%d-%m-%Y"
} }
3. or và and
{
$and:[
{
$or: [
{OrderId : {$gt: 1000}},
{OrderId : {$gte: 100}},
{OrderId : {$in : [995,991,992]}}
],
OrderCode:{$regex:"HCM"},
OrderCode:{$regex:"^HCM"},
OrderCode:{$regex:"CC$"},
}
]
}
4. Chi tiết Sort
1 : tăng dần
- 1 : giảm dần
Ví dụ :
{"OrderId": 1}
5. Group
_id : group theo column nào
$sum : Tính tổng sum của column nào $sum: '$ObjId' , muốn tính count : $sum:1
$max : Lấy giá trị lớn nhất của column
$min : Lấy giá trị nhỏ nhất của column
$first: Lấy đầu tiên của column
Group 1 column
_id: '$ObjId'
Group nhiều column
_id: {
"ObjId": "$ObjId",
"ObjContract": "$ObjContract",
},
Vi dụ:
{
_id: '$ObjId',
n_sum: {
$sum:1
},
n_max:{$max:'$OrderId'},
n_min:{$min:'$OrderId'},
first_OrderCode: { $first: "$OrderCode" },
}
6. Unwind - bóc tách 1 mảng ra thành nhiều row
$unwind: {
path: '$Vouchers'
}
Ví dụ :
Row gốc
{"OrderId" : 995,"Vouchers" : [1,2]}
Tách ra thành 2 row
{"OrderId" : 995,"Vouchers" : 1}
{"OrderId" : 995,"Vouchers" : 2}
7. project - lấy những column nào
$project: {
OrderId: 1,
Vou_Apply_SerCode: '$Vouchers.Apply.ServiceCode'
}
8. ReplaceRoot - Khá giống project
{$replaceRoot: {
newRoot: {
LastUpdatedDate : {$toDate : {$toLong : "$LastUpdatedDate"}} ,
OrderId : "$OrderId",
OrderCode:{ $toUpper: "$OrderCode" },
OrderCode_lo:{ $toLower: "$OrderCode" },
LastUpdatedDate : {$toDate : {$toLong : "$LastUpdatedDate"}} ,
}LastUpdatedDate : {$toDate : {$toLong : "$LastUpdatedDate"}}
LastUpdatedDate : {"$add": [ new Date(0), {$toLong : "$LastUpdatedDate"} ]}
"date" : ISODate("2017-02-08T05:00:00Z")
9. Lookup - giống như left join SQL
$lookup: {
from: 'saleplatform_order_detail',
localField: 'OrderId',
foreignField: 'OrderId',
as: 'OrderId'
}
10. Limit
{$limit: 2}
11. $skip
{ $skip: 50 }
12. Chuyển đổi dữ liệu
$toLong : Chuyển đổi số => kiểu số long
$toUpper : Chuyển đổi string => string chữ hoa
$toLower : Chuyển đổi string => string chữ thường
$toDate : Chuyển đổi dữ liệu từ kiểu số => datetime
OrderCode:{ $toUpper: "$OrderCode" },
OrderCode_lo:{ $toLower: "$OrderCode" },
LastUpdatedDate : {$toDate : {$toLong : "$LastUpdatedDate"}} ,
13. Toán tử
$subtract :
$subtract: [ "$start", "$end" ]
5. Maximum Time - thời tran truy vấn tối đa
Default MAX TIME MS value is 60000, or 60 seconds.
Nếu quá thời gian , sẽ show ra kết quả chạy tới thời điểm đó
6. Collation - Quy tắc ngôn ngữ
Ví dụ chữ hoa, ...
{ "locale" : "simple" }
7. Skip - Limit
Xem từ row nào , mỗi lần xem bao nhiêu row
Ví dụ :
Để xem từ row 436, mỗi lần xem, 50 row
MongoDB
db.article.aggregate(
{ $limit : 50 },
{ $skip : 435 }
);
SQL
SELECT * FROM article
LIMIT 50 OFFSET 435;
8. Explain Plan - View Query Performance
9. Saved Queries
Xem lịch sử các query truy vấn
Đánh dấu sao vào câu query ưa thích, chuyển nó qua FAVORITES
Qua mục FAVORITES, thấy câu query đó và save
Save thành công
0 Nhận xét