大部分业务使用Mysql,此次业务需求用到Mongdb,将Mysql与Mongdb的语法对比起来掌握查询语法
一、查询
1、查询全表
Mysql:select * from table_name;
Mongdb:db.collection_name.find();
2、带条件查询
Mysql:select * from table_name where column_name="value";
Mongdb:db.collection_name.find({'column_name':'value'});
3、带条件查询,展示需要的字段
Mysql:select column1_name,column2_name from table_name where column_name="value";
Mongdb:db.collection_name.find({'column_name':'value'},{'column1_name':1,'column2_name':1);【第一个{} 放where条件 第二个{} 指定那些列显示和不显示 (0表示不显示 1表示显示)】
3.1、带条件查询-----等于
Mysql:select * from table_name where column_name="value";
Mongdb:db.collection_name.find({'column_name':'value'});
3.2、带条件查询-----and
Mysql:select * from table_name where column1_name="value" and column2_name="value" ;
Mongdb:db.collection_name.find({'column_name':'value','column_name':'value'});
3.3、带条件查询----------or
Mysql:select * from table_name where column1_name="value" or column2_name="value" ;
Mongdb:db.collection_name.find({'$or:[{'column1_name':'value'},{'column2_name':'value'}]'});
3.4、带条件查询-----<, <=, >, >= ($lt, $lte, $gt, $gte )
Mysql:select * from table_name where column_name>value and column_name<value
Mongdb:db.collection_name.find({'column_name':{'$gt':value,'$lt':value}});
3.5、带条件查询-----in, not in ($in, $nin)
Mysql:select * from table_name where column_name IN("value1","value2");
Mongdb:db.collection_name.find({'column_name ':{'$in:[value1,value2]'}});
3.6、带条件查询-----匹配null
Mysql:select * from table_name where column_name is NULL;
Mongdb:db.collection_name.find({'column_name ':null});
3.7、带条件查询-----like (mongoDB 支持正则表达式)
Mysql:select * from table_name where column_name like '%value%';
select * from table_name where column_name like 'value%';
select * from table_name where column_name like '%value';
Mongdb:db.collection_name.find({'column_name':/value/});
db.collection_name.find({'column_name':/^value/});
db.collection_name.find({'column_name':/value$/});
3.8、带条件查询-----distinct
Mysql:select distinct column_name from table_name;
Mongdb:db.collection_name.distinct('column_name');
3.8、带条件查询-----count
Mysql:select count(*) from table_name;
Mongdb:db.collection_name.count();
db.collection_name.count({'column1_name':'column1_value','column2_name':'column2_value'});
3.8、聚合函数-----group
Mysql: select column_name, count(*) from table_name group by column_name;
Mongdb:db.collection_name.aggregate([{$group : {_id : "$column1_name", num_tutorial : {$sum : 1}}}])
3.9、不等于-----$ne
Mysql: SELECT * FROM table_name where column_name != "column_value";
Mongdb:db.collection_name.find({"column_name":{$ne:"column_value"}});
4.0、 聚合函数-----aggregate
db.getCollection("collection_name").aggregate([
{ $group: { _id : '$column_name', count: { $sum : 1 } } },
{ $match: { count: { $gt : 1} } }
])