简单介绍
MongoDB是一个基于分布式文件存储的数据库
由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
查询方法
查询所有
MongoDB db.getCollection('user').find({});
MySQL select * from user;
查询条件:=
MongoDB db.getCollection('user').find({"uclass":"A"});
MySQL select * from user where uclass = 'A';
```
查询条件:like
```json
MongoDB db.getCollection('user').find({"name":/Ba/});
MySQL select * from user where name like '%Ba%';
查询条件:distinct
MongoDB db.getCollection('user').distinct("name");
MySQL select distinct uclass from user u;
查询条件:$gt
MongoDB db.getCollection('user').find({"age":{$gt:16}}); greater than >
MySQL select * from user where age >16;
查询条件:$gte
MongoDB db.getCollection('user').find({"age":{$gte:16}}); gt equal >=
MySQL select * from user where age >= 16;
```
查询条件:$lt
```josn
MongoDB db.getCollection('user').find({"age":{$lt:16}}); less than <
MySQL select * from user where age < 16;
查询条件:$lte
MongoDB db.getCollection('user').find({"age":{$lte:16}}); lt equal <=
MySQL select * from user where age <= 16;
查询条件:$ne
MongoDB db.getCollection('user').find({"age":{$ne:16}}); not equal !=
MySQL select * from user where age != 16;
```
查询条件:$eq
```josn
MongoDB db.getCollection('user').find({"age":{$eq:16}});等效于:db.getCollection('user').find({"age":16});
MySQL select * from user where age = 16;
查询条件:in
MongoDB db.getCollection('user').find({"uclass":{$in:['A', 'B']}});
MySQL select * from user where uclass in ('A', 'B');
```
查询条件:and
```josn
MongoDB db.getCollection('user').find({"uclass":"B", "age":{$gt:16}});
MySQL select * from user where uclass = 'B' and age > 16;
```
查询条件:or
```josn
MongoDB db.getCollection('user').find({$or:[{"uclass":"A"},{"class":"B"}]});
MySQL select * from user where uclass = 'A' or uclass = 'B';
查询条件:时间
MongoDB db.getCollection('user').find({"birthday":{$gt: new Date("2008-08-14T06:24:40.110Z"), $lt: new Date("2015-08-14T06:14:40.089Z")}});
MySQL select * from user where birthday > '2008-08-14 06:24:40' and birthday < '2015-08-14 06:14:40';
```
查询条数:count
```josn
MongoDB db.getCollection('user').find({"uclass":"A"}).count();
MySQL select count(1) from user where uclass = 'A';
查询条件:sort升序
MongoDB db.getCollection('user').find({}).sort({"age":1});
MySQL select * from user order by age asc;
查询条件:sort降序
MongoDB db.getCollection('user').find({}).sort({"age":-1});
MySQL select * from user order by age desc;
聚合查询:count单列
MongoDB db.getCollection('user').aggregate([{$group:{_id:"$uclass",num:{$sum:1}}}]);
MySQL select uclass, count(1) as num from user group by uclass;
聚合查询:count多列
MongoDB db.getCollection('user').aggregate([{$group:{_id:{uclass:"$uclass", age:"$age"},num:{$sum:1}}}]);
MySQL select uclass, age, count(1) as num from user group by uclass, age;
```
分页查询:limit n
```josn
MongoDB db.getCollection('user').find({}).limit(5); 查询前n条
MySQL select * from user limit 5;
分页查询:limit m,n
MongoDB db.getCollection('user').find({}).limit(5).skip(5); 查询n条,从第m条开始
MySQL select * from user limit 5,5;
查询指定字段
MongoDB db.getCollection('user').find({}, {userId:1, name:1}); 第一个{}为查询条件
MySQL select userId, name from user;
```
排查指定字段
```josn
MongoDB db.getCollection('user').find({}, {dataStatus:0, _id:0}); 第一个{}为查询条件
MySQL 无
还没写完