美文网首页
MongoDB常见操作

MongoDB常见操作

作者: 1462a2c022bc | 来源:发表于2018-10-06 15:08 被阅读0次

    安装mongodb的步骤: (最新版本)

        1) 上官网 找到对应的版本 下载安装(.msi 安装文件)

        2) 点击下一步 傻瓜式安装 (compass 可以不勾选)

        3) 安装完成  进入安装目录 C:\  Files\MongoDB\Server\4.0\bin

          从这个目录 进入 cmd  试一下 mongo命令是否可以使用

          输入:  mongo (如果可以使用 不会显示不是内部或外部命令)

        4) 配置环境变量 (因为 mongo命令 只能在安装目录使用 我们需要它在任何目录都可以使用)

            C:\Program Files\MongoDB\Server\4.0\bin

        5) 测试是否安装成功

            a) win + R 输入cmd  打开命令行

            b) 输入:  mongo

            c) 输入:  show dbs

    常用数据库命令

        1)  显示当前有哪些数据库:  show dbs;  (数据库里面必须至少有一条数据 才能显示出来)

        2)  使用数据库:    use  数据库的名字  (如果已经存在 直接使用 如果不存在 会自动创建一个)

        3)  检测当前你在哪个数据库里面:  db;

        4)  显示当前数据库有哪些集合:  show collections;

        5)  显示当前集合有哪些数据:  db.集合名.find()

    <--------------- 增加数据 ------------->

        1) db.集合名.insert({"key":"value"})

            示例:  db.H50709.insert({"name":"张三", "age": 18});

        2) db.集合名.save({"key":"value"})

            示例:  db.H50709.save({"name":"李寻欢", "age": 28});

        区别: save()方法 和 insert()方法 都可以往数据库里面插入(增加)数据,但是有区别:

              save() 方法 如果插入一条已经存在的数据 会  覆盖;

              insert() 方法, 如果插入一条已经存在的数据, 会 报错 无法插入;

    <--------------- 删除数据 ------------->

        1) 删除文档(删除json数据)

            a) db.集合名.remove({})  // 删除集合下的所有数据

            b) db.集合名,remove({key: value})  // 按条件删除

              示例:  db.集合名.remove({"age": 18});  // 删除年龄为18岁的所有数据

    2) 删除集合

            db.集合名.drop();

        3) 删除数据库 (在哪个数据库里面运行这个命令 就删除哪个数据库)

            db.runCommand({"dropDatabase": 1});

    <--------------- 查询数据 ------------->

        1) db.集合名.find()  // 查找集合下所有数据

        2) db.集合名.findOne() // 查找集合下第一条数据

        3) db.集合名.find().pretty();  // 查找集合下所有数据, 格式化再显示出来

    <--------------- 修改数据 ------------->

        1) db.集合名.update({key: value}, {key: value})

        // update方法 有两对大括号, 第一对里面 是查找的条件  第二对里面是修改后的 新 内容

        // 示例代码:

            db.users.update({"name":"张三"}, {"age": 38})  // 修改后 只有第二大括号的内容

            db.users.update({"name":"李四"}, {"name":"李四", "age": 38})

            db.users.update({"name":"李四"}, {$set: { "age": 98 } })  // 只会改年龄 其他保持不变

    高级条件查询命令

        语法1:db.collection.find({ "key" : value })    查找key=value的数据.

        例1:查找女歌星。

        代码: db.list.find({"sex": "女"});

        -------------------------------------------------

        语法2: db.collection.find({ "key" : { $gt: value } })    key > value

        例2:查找年龄大于53的歌星。

        代码: db.list.find({"age": { $gt: 53 }}).pretty();

        语法3:db.collection.find({ "key" : { $lt: value } })    key < value

        例3:查询年龄小于35岁的歌星。

        代码: db.list.find({"age": { $lt: 35 }}).pretty();

        语法4:db.collection.find({ "key" : { $gte: value } })    key >= value

        例4:查询成绩大于等于95的歌星。

        代码: db.list.find({"score": { $gte: 95 }}).pretty();

        语法5:db.collection.find({ "key" : { $lte: value } })    key <= value

        例5:查询年龄在小于等于32岁的歌星。

        代码: db.list.find({"age": { $lte: 32 }}).pretty();

        语法6:db.collection.find({ "key" : { $gt: value1 , $lt: value2 } })   value1 < key <value2

        例6:查找年龄在30-40岁之间的歌星。

        代码: db.list.find({"age": { $gt: 30, $lt: 40 }}).pretty();

        -------------------------------------------

        语法7:db.collection.find({ "key" : { $ne: value } })    key <> value

        例7:查询外国歌手。

        代码: db.list.find({"country": { $ne: "中国" }}).pretty();

        语法8:db.collection.find({ "key" : { $mod : [ 10 , 1 ] } })    

              取模运算,条件相当于key % 10 == 1 即key除以10余数为1的

        例8:查询成绩为5 、15、25、。。。。95的歌星。

        代码: db.list.find({"score" : { $mod: [10, 5] }}).pretty();

        语法9:db.collection.find({ "key" : { $in: [ 1, 2, 3 ] } })    

              属于,条件相当于key等于[ 1, 2, 3 ]中任何一个.

        例9:查询序号(num)为3或者6或者9的歌星。

        代码: db.list.find({"num": {$in : ["3", "6", "9"]}}).pretty();

        语法10:db.collection.find({ "key" : { $nin: [ 1, 2, 3 ] } })    

        不属于,条件相当于key的值不属于[ 1, 2, 3 ]中任何一个。

        例10:查询国籍不为美国和韩国的歌手。

        代码:  db.list.find({"country": { $nin: ["美国", "韩国"] }}).pretty();

        语法11:db.collection.find({ "key" : { $size: 1 } })  

         $size 数量、尺寸,条件相当于key对应的值的数量是1(值必须是数组)

        例11:查询有3个代表作品的歌手。

        代码: db.list.find({"works": { $size: 3 }}).pretty();

        语法12:db.collection.find({ "key" : { $exists : true|false } })    

        $exists 字段存在,true返回存在字段key的数据,false返回不存在字段key的数据

        例12:查询包含tel字段的数据。

        代码: db.list.find({"tel" : { $exists: true }}).pretty();

        语法13:db.collection.find({ $or : [{a : 1}, {b : 2} ] })  

        符合两个条件中任意一个的数据 都会被查询出来

        例13:某个娱乐公司15个人,资料都在数据库里面,某个活动必须要刘德华参加,

        另外需要团队的全部女歌手配合演出,领导安排你帮忙打印歌手的资料。

        代码: db.list.find({$or : [{"name":"刘德华"}, {"sex":"女"}]}).pretty();

        语法14: 插入一条数据

            db.list.insert({"name":"test", "score": {"yw": 80, "sx": "90", "wy": 95}})

        例14: 查询语文成绩为80的同学

            db.list.find({"score.yw": 80}).pretty();

            查询数学成绩为90的同学

            db.list.find({"score.sx": "90"}).pretty();

        --------------------------------------------------

        补充几个方法:

            1) sort({key: 1/-1})  安装key字段的值  排序 1升序 -1降序

                示例: 按照年龄从小到大排序

                db.list.find({}).sort({"age": 1}).pretty();

                示例: 安装得分从高到底排序

                db.list.find({}).sort({"score": -1}).pretty();

            2) skip(n)  跳过n条

              示例:  查询第3条后的所有数据

              db.list.find({}).skip(3).pretty();

            3) limit(n)  限制输出多少条

              示例: 输出 前 5条

                db.list.find({}).limit(5).pretty();

            示例: 请求输入 第6 到 第10 条

                db.list.find({}).skip(5).limit(5).pretty();

    相关文章

      网友评论

          本文标题:MongoDB常见操作

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