| SQL条款 | MongoDB条款 |
| database | database |
| table | Collection |
| row | document or BSON document |
| column | field |
| index | index |
| table joins | $lookup, embedded document |
| primary key | primary key |
| 在SQL中,我们可以指定任何唯一的列或列组合作为主键。 | 在MongoDB中,我们不需要设置主键。 _id字段自动设置为主键。 |
| aggregation | aggregation pipeline |
| SELECT INTO NEW_TABLE | $out |
| MERGE INTO TABLE | $merge |
| transactions | transactions |
{
_id: ObjectId("509a8fb2bd2f983a0"),
user_id: "admin123",
age: 18,
status: 'A'
}
| SQL语句 | MongoDB语句 |
| CREATE TABLE lidihuo ( id MEDIUMINT NOT NULL AUTO_INCREMENT, user_id Varchar(20), age Number, status char(1), PRIMARY KEY (id) ) |
db.createCollection(" lidihuo") |
| ALTER TABLE lidihuo添加ADD join_date DATETIME | db.lidihuo.updateMany( {}, {$set: {join_date: new Date()}} ) |
| ALTER TABLE lidihuo DROP COLUMN join_date | db.lidihuo.updateMany( {}, {$unset: {" join_date": ""}} ) |
| 在lidihuo上创建索引idx_user_id_asc(user_id) | db.people.createIndex({user_id: 1}) |
| 创建索引idx_user_id_asc开启人员(user_id) | db.people.createIndex({user_id: 123,age: 1}) |
| DROP TABLE人员 | db.people.drop() |
| SQL插入语句 | MongoDB插入语句 |
| INSERT INTO liidihuo (user_id,age,status)VALUES ("mongo",45,"A") | db.liidihuo.insertOne({ user_id: "mongo", age: 18, status: "A" }) |
| SQL SELECT语句 | MongoDB find()语句 |
| SELECT * FROM liidihuo | db.lidihuo.find() |
| SELECT id, user_id, status FROM lidihuo | db.lidihuo.find({},{user_id: 1,status: 1}) |
| SELECT user_id,status from lidihuo | db.lidihuo.find({},{user_id: 1,status: 1,_id: 0}) |
| SELECT * FROM lidihuo WHERE status="B" | db.lidihuo.find({status: " A"}) |
| SELECT user_id,status from lidihuo WHERE,status="A" | db.lidihuo.find({status: " A"},{user_id: 1,status: 1,_id: 0}) |
| SELECT * FROM lidihuo WHERE status!="A" | db.lidihuo.find({status: {$ne: " A"}}) |
| SELECT * FROM lidihuo WHERE status = "A" AND age = 50 | db.lidihuo.find({status: " A",age: 50}) |
| SELECT * FROM lidihuo WHERE status = "A" OR age = 50 | db.lidihuo.find({$or: [{status: " A"}},{age: 50}]}) |
| SELECT * FROM lidihuo WHERE age > 25 | db.lidihuo.find({age: {$gt: 25}}) |
| SELECT * FROM lidihuo WHERE age < 25 | Db.lidihuo.find({ age: { $lt: 25 } }) |
| SELECT * FROM lidihuo WHERE age > 25 AND age <= 50 | db.lidihuo.find({ age: { $gt: 25, $lte: 50 } }) |
| SELECT * FROM lidihuo WHERE user_id like "%bc%" | db.lidihuo.find( { user_id: /bc/ } ) 或者 db.lidihuo.find( { user_id: { $regex: /bc/ } } ) |
| SELECT * FROM lidihuo WHERE user_id like "bc%" | db.lidihuo.find( { user_id: /^bc/ } ) 或者 db.lidihuo.find( { user_id: { $regex: /^bc/ } } ) |
| SELECT * FROM lidihuo WHERE status = "A" ORDER BY user_id ASC | db. lidihuo. find( { status: "A" } ).sort( { user_id: 1 } ) |
| SELECT * FROM lidihuo WHERE status = "A" ORDER BY user_id ASC | db. lidihuo. find( { status: "A" } ). sort( { user_id: -1 } ) |
| SELECT * FROM lidihuo WHERE status = "A" ORDER BY user_id DESC | db. lidihuo. find( { status: "A" } ). sort( { user_id: -1 } ) |
| SELECT * FROM lidihuo WHERE status = "A" ORDER BY user_id DESC | db。 lidihuo。 find({status: " A"})。 sort({user_id: -1}) |
| SELECT COUNT(*) FROM lidihuo | db.lidihuo. count() 或者 db.lidihuo. find(). count() |
| SELECT COUNT(user_id) FROM lidihuo | db.lidihuo.count({user_id:{$exists:true}}) 或者 db. lidihuo.find( { user_id: { $exists: true } } ).count() |
| SELECT COUNT(*) FROM lidihuo WHERE age > 30 | db. lidihuo.count({age:{$gt:30}}) 或者 db.lidihuo.find( { age: { $gt: 30 } } ).count() |
| SELECT DISTINCT(status) FROM lidihuo | db. lidihuo.aggregate( [ { $group : { _id : "$status" } } ] ) 或者 db. lidihuo.distinct( "status" ) |
| SELECT * FROM lidihuo LIMIT 1 | db. lidihuo.findOne() 或者 db. lidihuo.find(). limit(1) |
| SELECT * FROM lidihuo LIMIT 5 SKIP 10 | db. lidihuo.find(). limit(5). skip(10) |
| EXPLAIN SELECT * FROM lidihuo WHERE status = "A" | db. lidihuo. find( { status: "A" } ). explain() |
| SQL更新语句 | MongoDB updateMany()语句 |
| UPDATE lidihuo SETstatus="C" 年龄> 25 | db.lidihuo.updateMany({age: {$gt: 25}},{$set: {status: " C"}}}) |
| UPDATE lidihuo SET年龄=年龄+ 3 状态为" A" | db.lidihuo.updateMany({status: " A"},{$inc: {age: 3}}) |
| SQL删除语句 | MongoDB deleteMany()语句 |
| 从lidihuo删除,status="D" | db.lidihuo.deleteMany({状态: " D"}) |
| 从lidihuo删除 | db.lidihuo.deleteMany({}) |