mongoDB数据库的增删改查【查询数据】@[a1396537376]
mongoDB数据库的增删改查【查询数据】
MongoDB官网
为node做基础准备,入门级
1.首先,使用windows 的bat 文件快速启动 mongoDB数据库(不涉及可视化界面)
1-1这边使用黑窗口进行代码演示,方便直观了解。
1.cd 到MongoDB的安装bin目录下
2.键入:mongod.exe --dbpath E:\MongoDataBase (后面参数是数据文件的存放位置,可以自拟)
3.成功后,会自动生成数据的配置文件。
1-2对以上代码进行封装
利用.bat文件进行一键式启动数据库:
1.配置好环境变量:path环境变量中添加一个指针,指向安装目录的bin值
2.编辑.bat文件:
echo “MongoDB starting…”
mongod --dbpath E:\MongoDataBase (参数为我个人参数,跟随实际安装路径改变)
pause
3.客户端连接服务端数据库:
mongo 127.0.0.1:27017 (该数据库的常用端口是27017)
4.进行数据库查询:
show dbs
上图:
2.实际操作
tip 黑窗口键入mondb,对数据库进行操作
2-1添加数据:
插入数据,随着数据的插入,数据库创建成功了,集合也创建成功了。
tip:和mysql不同的是,插入数据的同时,等同于创建一个新的数据库
$语法:
db.表名.insert({“name”:“zhangsan”}); student 集合名称(表)
2-2查询数据
1、查询所有记录
db.userInfo.find();
相当于:select* from mon;
2.、查询去掉后的当前聚集集合中的某列的重复数据
db.mon.distinct(“name”);
会过滤掉 name 中的相同数据 相当于:select distict name from mon;
3、查询 age = 19 的记录
db.mon.find({“age”: 19}); 相当于: select * from mon where age = 19;
4、查询 age > 19 的记录
db.mon.find({age: {$gt: 22}}); 相当于:select * from mon where age >19;
5、查询 age < 19 的记录
db.mon.find({age: {$lt: 19}});
相当于:select * from mon where age <19
6、查询 age >= 19 的记录
db.mon.find({age: {$gte: 25}});
相当于:select * from mon where age >= 19;
7、查询 age <= 19的记录
db.mon.find({age: {$lte: 19}});
8、查询 age >= 19并且 age <= 22注意书写格式
db.mon.find({age: {$gte: 19, $lte: 22}});
9、查询 name 中包含 mongo 的数据 模糊查询用于搜索
db.mon.find({name: /王/});
//相当于%%
select * from mon where name like ‘%mongo%’;
10、查询 name 中以 mongo 开头的
db.mon.find({name: /^mongo/});
select * from mon where name like ‘mongo%’;
11、查询指定列 name、age 数据
db.mon.find({}, {name: 1, age: 1});
相当于:select name, age from mon;
当然 name 也可以用 true 或 false,当用 ture 的情况下和name:1 效果一样,如果用 false 就 是排除 name,显示 name 以外的列信息
12、按照年龄排序 1 升序 -1 降序
升序:db.mon.find().sort({age: 1});
降序:db.mon.find().sort({age: -1});
13、查询前 3 条数据
db.mon.find().limit(3);
相当于:select top 3 * from mon;
14、查询在 5-10 之间的数据 【重要】
db.mon.find().limit(10).skip(5);
可用于分页,limit 是 pageSize,skip 是第几页 *pageSize
对比总数据:
15、or 与 查询
db.mon.find({$or: [{age: 19}, {age: 18}]});
相当于:select * from mon where age = 22 or age = 25;
tip:对象思想:$or传入一个数组,数组携带两个对象…
16、查询某个结果集的记录条数 统计数量
db.mon.find({age: {$gte: 25}}).count();
相当于:select count(*) from mon where age >= 20;
如果要返回限制之后的记录数量,要使用 count(true)或者 count(非 0) db.mon.find().skip(10).limit(5).count(true);