MongoDB常见操作

安装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

    例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常见操作)