• MongoDB基本操作总结


    MongoDB语法总结:
    插入操作:
    单条插入
    语法 : insertOne()
    示例:

    db.getCollection('MY_TEST').insertOne({"日期" : "20190915", "作者": "xmr", "目标" :"整理mongo语法"})
    1
    结果:

    /* 1 */
    {
    "acknowledged" : true,
    "insertedId" : ObjectId("5cdbdad464173957bc9e392a")
    }
    1
    2
    3
    4
    5
    结果验证:

    # 全表查询
    db.getCollection('MY_TEST').find({})

    {
    "_id" : ObjectId("5cdbdad464173957bc9e392a"),
    "日期" : "20190915",
    "作者" : "xmr",
    "目标" : "整理mongo语法"
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    批量插入 :
    语法 : insertMany()
    插入数据集 :

    [{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
    {"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
    {"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"35", "收入" : "233", "爱好": "女", "职业" : "码畜", "学历" : "本科"},
    {"姓名:" : "zyd", "性别" : "女", "住址" : "火星", "年龄" :"22", "收入" : "88888", "爱好":"吃", "职业" : "学生", "学历" : "硕士"},
    {"姓名:" : "张子枫", "性别" : "女", "代表作品" : "你好,之华, 唐山大地震", "综艺" : "向往的生活第三季", "优势" : "美"},
    {"动漫名" : "火影忍者", "女主": "日向雏田", "年龄": "24"}
    ]`
    1
    2
    3
    4
    5
    6
    7
    实例:

    db.getCollection('MY_TEST').insertMany([{"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
    {"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"23", "收入" : "354", "爱好": "女", "职业" : "码畜"},
    {"姓名:" : "xmr", "性别" : "男", "住址" : "地球", "年龄" :"35", "收入" : "233", "爱好": "女", "职业" : "码畜", "学历" : "本科"},
    {"姓名:" : "zyd", "性别" : "女", "住址" : "火星", "年龄" :"22", "收入" : "88888", "爱好":"吃", "职业" : "学生", "学历" : "硕士"},
    {"姓名:" : "张子枫", "性别" : "女", "代表作品" : "你好,之华, 唐山大地震", "综艺" : "向往的生活第三季", "优势" : "美"},
    {"动漫名" : "火影忍者", "女主": "日向雏田", "年龄": "24"}
    ])
    1
    2
    3
    4
    5
    6
    7
    运行结果 :

    /* 1 */
    {
    "acknowledged" : true,
    "insertedIds" : [
    ObjectId("5cdbde9564173957bc9e392c"),
    ObjectId("5cdbde9564173957bc9e392d"),
    ObjectId("5cdbde9564173957bc9e392e"),
    ObjectId("5cdbde9564173957bc9e392f"),
    ObjectId("5cdbde9564173957bc9e3930"),
    ObjectId("5cdbde9564173957bc9e3931")
    ]
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    注:_id读作Object id, 由时间,机器码,进程pid和自增计数器构成

    之后的查询和删除都以刚刚添加的几条数据为基础进行操作

    查询操作
    全表扫描:
    语法 : find({})
    实例:

    db.getCollection('MY_TEST').find({})
    1
    查询固定值数据 :
    语法 : find({“字段值1”:“值1”, “字段值2”:“值2”})
    实例1: 扫描表里面姓名是张子枫的数据

    db.getCollection('MY_TEST').find({"姓名:" : "张子枫"})
    1
    结果1:

    /* 1 */
    {
    "_id" : ObjectId("5cdbde9564173957bc9e3930"),
    "姓名:" : "张子枫",
    "性别" : "女",
    "代表作品" : "你好,之华, 唐山大地震",
    "综艺" : "向往的生活第三季",
    "优势" : "美"
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    实例2 : 扫描表里面姓名是xmr, 学历为本科的数据

    db.getCollection('MY_TEST').find({"姓名:" : "xmr", "学历" : "本科"})
    1
    结果2:

    /* 1 */
    {
    "_id" : ObjectId("5cdbde9564173957bc9e392e"),
    "姓名:" : "xmr",
    "性别" : "男",
    "住址" : "地球",
    "年龄" : "35",
    "收入" : "233",
    "爱好" : "女",
    "职业" : "码畜",
    "学历" : "本科"
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    范围查询 :
    操作符介绍 :

    $gt 大于
    $gte 大于等于
    $lt 小于
    $lte 小于等于
    $ne 不等于
    1
    2
    3
    4
    5
    实例1 : 查询表里面年龄大于等于35岁的数据

    db.getCollection('MY_TEST').find({"年龄" : {"$gte" : "35"}})
    1
    结果1:

    /* 1 */
    {
    "_id" : ObjectId("5cdbde9564173957bc9e392e"),
    "姓名:" : "xmr",
    "性别" : "男",
    "住址" : "地球",
    "年龄" : "35",
    "收入" : "233",
    "爱好" : "女",
    "职业" : "码畜",
    "学历" : "本科"
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    实例2: 查询表里面年龄大于23且年龄小于等于35的结果.

    db.getCollection('MY_TEST').find({"年龄" : {"$gt" : "23", "$lte" : "35"}})
    1
    结果2:

    /* 1 */
    {
    "_id" : ObjectId("5cdbde9564173957bc9e3931"),
    "动漫名" : "火影忍者",
    "女主" : "日向雏田",
    "年龄" : "24"
    }

    /* 2 */
    {
    "_id" : ObjectId("5cdbde9564173957bc9e392e"),
    "姓名:" : "xmr",
    "性别" : "男",
    "住址" : "地球",
    "年龄" : "35",
    "收入" : "233",
    "爱好" : "女",
    "职业" : "码畜",
    "学历" : "本科"
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    在上面的基础上继续添加条件 : (满足实例2并且动漫名为火影忍者的结果)
    1
    db.getCollection('MY_TEST').find({"年龄" : {"$gt" : "23", "$lte" : "35"}, "动漫名" : "火影忍者"})
    1
    结果:

    /* 1 */
    {
    "_id" : ObjectId("5cdbde9564173957bc9e3931"),
    "动漫名" : "火影忍者",
    "女主" : "日向雏田",
    "年龄" : "24"
    }
    1
    2
    3
    4
    5
    6
    7
    返回或者剔除指定的字段:
    1代表返回该字段
    0代表剔除该字段
    实例1 : 只返回年龄和姓名字段

    db.getCollection('MY_TEST').find({}, {"年龄" : 1, "姓名" : 1})
    1
    结果1:

    实例2 : 除了年龄和姓名字段,剩下全部显示 :

    db.getCollection('MY_TEST').find({}, {"年龄" : 0, "姓名:" : 0})
    1
    结果2:


    查询结果数目或者限制条数
    查询结果数目语法 : count()
    限制返回条数语法: limit(条数)
    查询结果数目实例:

    db.getCollection('MY_TEST').find({}).count();
    1
    结果: 8
    限制返回记录实例: 返回两条结果:

    db.getCollection('MY_TEST').find({}).limit(2)
    1
    结果:

    /* 1 */
    {
    "_id" : ObjectId("5cdbdad464173957bc9e392a"),
    "日期" : "20190915",
    "作者" : "xmr",
    "目标" : "整理mongo语法"
    }

    /* 2 */
    {
    "_id" : ObjectId("5cdbdbac64173957bc9e392b"),
    "日期" : "20190915",
    "作者" : "xmr",
    "目标" : "整理mongo语法"
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    排序
    语法 : sort(“字段名” : 1 or -1) 其中 :1表示正序, -1表示倒序
    实例一: 将年龄大于23且年龄小于等于35的结果按照年龄逆序排列

    db.getCollection('MY_TEST').find({"年龄" : {"$gt" : "23", "$lte" : "35"}}).sort({"年龄" :-1})
    1
    返回结果如下:


    修改操作 :
    语法 : updateOne() 修改单条数据
    updateMany()修改多条数据
    举例: 把表里面所有年龄小于23数据的姓名更改为日向雏田

    db.getCollection('MY_TEST').updateMany({"年龄": {"$lte":"23"}}, {"$set": {"姓名:":"日向雏田"}})
    1
    执行结果:

    /* 1 */
    {
    "acknowledged" : true,
    "matchedCount" : 3.0,
    "modifiedCount" : 3.0
    }
    ```
    从结果上面看,有三条记录被更改,查询表格查看修改结果:

    ```java
    db.getCollection('MY_TEST').find({"年龄": {"$lte":"23"}})
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    可以看到: 年龄小于等于23结果的姓名全部被修改成为日向雏田


    删除操作,谨慎使用!
    语法 : deleteOne() 删除一条
    deleteMany() 删除多条
    实例1 : 删除表格里面年龄为35的第一条记录

    db.getCollection('MY_TEST').deleteOne({"年龄":"35"})
    1
    删除之后执行命令 :

    db.getCollection('MY_TEST').find({})
    1
    从结果中可以看到,原来年龄为35的一条记录被删除了:


    实例2 : 删除表格里面作者为xmr的全部记录

    db.getCollection('MY_TEST').deleteMany({"作者":"xmr"})
    1
    执行结果: 可以看到有两条记录被删除

    /* 1 */
    {
    "acknowledged" : true,
    "deletedCount" : 2.0
    }
    1
    2
    3
    4
    5
    查询数据库 :

    db.getCollection('MY_TEST').find()
    1
    可以看到 : 所有作者为xmr的数据全部被删除了


    数据去重
    语法: distinct()
    实例1 :对年龄字段进行去重

    db.getCollection('MY_TEST').distinct("年龄" )
    1
    结果1:

    /* 1 */
    [
    "23",
    "24",
    "22"
    ]
    1
    2
    3
    4
    5
    6
    实例2: 对年龄大于等于23的结果进行去重

    db.getCollection('MY_TEST').distinct("年龄" ,{ "年龄" :{"$gte" : "23"}})
    1
    返回结果:

    /* 1 */
    [
    "23",
    "24"
    ]
    1
    2
    3
    4
    5
    注意 : distinct(http://www.my516.com)去重之后不允许带有其它字段,所以其使用具有很大的局限性!
    --------------------- 

  • 相关阅读:
    Word pair Hu
    [bzoj1601] 灌水
    小木棍
    雇佣计划
    [Luogu1282] 多米诺骨牌
    [Luogu1216] 数字三角形
    [Luogu1734] 最大约数和
    [NOIp2008] 传纸条
    [Luogu1325] 雷达安装
    nginx
  • 原文地址:https://www.cnblogs.com/ly570/p/10987490.html
Copyright © 2020-2023  润新知