对象对应关系表
Mysql | MongoDB |
database | database |
table | collection |
row | document |
column | field |
index | index |
语法对比表(部门未进行验证,将持续更新)
MySQL | MongoDB |
CREATE TABLE test( id int, name varchar(32), age int, update_time datetime ); | db.createCollection("test") |
ALTER TABLE test drop column create_time; | db.test.update({},{$unset: { "create_time": "" } },{multi:true});
|
alter table test add unique index idx_name_age(name,age); | db.test.createIndex( { id: 1,age:-1 },{unique:true,background:true,sparse:true} ) |
DROP TABLE test | db.test.drop() |
INSERT INTO test(id,name,age)values(1,"aa",18); | db.test.insert( { id: 1,name:"aa", age: 18 } ) |
SELECT * FROM test; | db.test.find() |
SELECT id, age FROM test where name="aa" order by age desc ; | db.test.find( {name:"aa" }, { _id:0 ,id: 1, age: 1 } ).sort( { age: -1 } ) |
SELECT * FROM test WHERE name != "aa" | db.test.find({ name: { $ne: "aa" } }) |
SELECT * FROM test WHERE name= "aa" OR age = 18 | db.test.find( { $or: [ { name: "aa" } , { age: 18} ] } ) |
SELECT * FROM test WHERE age > 17 AND age <= 19 LIMIT 10,20 | db.test.find( { age: { $gt: 17, $lte: 19} } ).skip(10).limit(20) |
SELECT * FROM test where update_time>='2020-11-11 00:00:00' AND update_time<'2020-11-12 00:00:00' AND age in (18,19) | db.test.find({ "update_time":{$gte:ISODate("2020-11-10 16:00:00"),$lte:ISODate("2020-11-11 16:00:00")}, "age":{$in:[18,19]} }) #UTC时间 |
SELECT * FROM test WHERE name like "a%" | db.test.find( { name: /^a/ } ) |
select age,count(age) from test group by age having count(age) >2 ; | db.test.aggregate([ {$group: {_id: "$age",count: { $sum: 1 }}}, {$match: { count: { $gt: 2 } } } ]) |
SELECT COUNT(*) FROM test | db.test.count() |
SELECT COUNT(age) FROM test | db.test.find( { age: { $exists: true } } ).count() |
SELECT DISTINCT(name) FROM test where age=18; | db.test.distinct("name",{age:18}) |
EXPLAIN SELECT * FROM test WHERE name= "aa" | db.test.find( { name: "aa" } ).explain() |
UPDATE test SET age = 19 WHERE name= "aa" | db.collTest.update({name:"aa"},{$set{age :19}},{multi:true})
|
update test set age = age +1 where name="aa" | db.test.update({'name':'aa'},{$inc:{'age':1}}) |
delete from test where id<=10; | db.test.remove({id:{$lte:10}}) |