02_MongoDB数据操作

作者: pzmpzm | 来源:发表于2017-11-22 20:08 被阅读0次

    cls 清屏

    首先打开cmd中 首先打上 mongo

    1、show dbs 查看所有数据库

    2、show collections 查看所有的表

    3、use pzm 创建数据库,当存在时use 进入这个数据库

    创建数据库的时候 必须同时创建表

    4、数据库中不能直接插入数据,只能往集合(collections)中插入数据。不需要创建集合,只需要写点语法: 因为数据库无user,则系统自动把它设置为集合

    db.user.insert({"name":pzm,"age":20}) // 插入表(集合)和数据

    5、删除数据库 db.dropDatabase();

    查找数据:

    1、查询所有记录 (userInfo)为表名

    db.userInfo.find(); 相当于 select*from userInfo

    2、查询去掉后的当前聚集集合中的某列的重复数据

    db.userInfo.distinct("name")

    会过滤掉 name中相同的数据

    相当于 select distinct name from userInfo

    3、查询 age = 22 的记录

    db.userInfo.find({"age":22});

    相当于 select* from userInfo where age =22;

    4、查询 age > 22 的记录

    db.userInfo.find({"age" : { $gt:22 } } );

    相当于 select * from userInfo where age > 22;

    5、查询 age < 22 的记录

    db.userInfo.find( "age" : {$lt : 22} );

    相当于 select * from userInfo where age < 22

    6、查询 age >= 25的记录

    db.userInfo.find("age" : { $gte : 25});

    相当于 select * from userIndfo where age > = 25

    7、 age < = 25 同上 $lte:25

    8、 查询 age > 23 并且 age < =26

    db.userInfo.find({"age": { $gte : 23, $lte : 26} });

    9、模糊查询 name中有pzm的数据 /  /

    db.userInfo.find({ "name": /pzm/})

    相当于 %%

    select * from userInfo where name like '%pzm%';

    10、查询name中以 pzm 开头的

    db.userInfo.find("name" : /^pzm/)

    同 select *from userInfo where name 'pzm%';

    11、 结尾  /pzm$/

    12、查询 指定列 name 、age ()

    db.userInfo.find({},{ "name": 1 })  // 只会显示name这列,不会显示age的数据

    select name  from userInfo ;

    db.userInfo.find({},{"name":1,"age":1}) //只会显示 name 和age 的数据

    select name,age from userInfo;

    13、查询指定列 name,age 并且 age >=25(注意大括号的范围)

    db.userInfo.find({" age" : { $gte : 25}},{"name":1,"age":1})

    select name,age from userInfo where age >= 25;

    14、按年龄排序 升序sort({"age":1}) 降序sort({"age":-1})

    db.userInfo.find().sort({"age":1})

    15、 查询 name = pzm ,age =18的数据

    db.userInfo.find({"name": "pzm","age" : 18});

    同: select * from userInfo where name = "pzm"  and age = "18";

    16、 查询前五条数据

    db.userInfo.find().limit(5);

    同: selecttop 5 *from userInfo

    17、 查询10条以后的数据

    db.userInfp.find().skip(10);

    select * from userInfo where id not in(selecttop 10*from userInfo);

    18、

    db.userInfo.limit(5).skip(5);

    第一页:db.userinfo.find().limit(5).skip(0)

    第二页:db.userinfo.find().limit(5).skip(5)

    第三页:db.userinfo.find().limit(5).skip(10)

    ok,实际上limit就是pageSize,skip则是忽略前多少条

    db.userInfo.find().limit(pageSize).skip((pageNum -1)*pageSize)

    误区:别以为limit表示查询多少条就把第二页写成

    db.userinfo.find().limit(10).skip(5) --我要查询10条忽略前五条那不就是第二页了吗,大错特错。实际上是先忽略后,再查询多少条,跟Mongodb自身函数优先级有关吧。

    19、 查询第一条数据

    db.userInfo.findOne();

    selecttop 1 * from userInfo;

    db.userInfo.find().limit(1);

    20、查询某个结果集的数量

    db.userInfo.find({"age" : 24}).count();

    select count(*) from userInfo where age >= 20;

    修改数据:

    1、查找名字叫做小明的,把年龄更改为16岁:

    db.userInfo.update({"name":"小明"},{$set:{"age":18}})

    相关文章

      网友评论

        本文标题:02_MongoDB数据操作

        本文链接:https://www.haomeiwen.com/subject/eibwhxtx.html