暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MongoDB--》文档查询的详细具体操作

巴韭特锁螺丝 2023-02-24
50

统计查询

统计查询使用count()方法,其语法格式如下:

db.collection.count(query,options)
ParameterTypeDescription
querydocument查询选择条件
optionsdocument可选,用于修改计数的额外选项

接下来我往我空的集合 myTables 中添加如下数据,文章的讲解都是围绕着这些数据讲解:

    db.myTables.insertMany([
    {"_id":"1","name":"张三","age":"18","gender":"男"},
    {"_id":"2","name":"李四","age":"28","gender":"男"},
    {"_id":"3","name":"王五","age":"38","gender":"女"},
    {"_id":"4","name":"陈六","age":"48","gender":"男"},
    {"_id":"5","name":"胡七","age":"58","gender":"女"}
    ])

    使用 count  统计所有的记录数,默认情况下count()方法返回符合条件的所有记录数,如下:

    按条件统计记录数,如下:

    分页列表查询

    可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数据的数据。基本格式:

      db.collection.find().limit(number).skip(number)

      如果想返回指定条数的记录,可以在find()方法后调用limit()来返回结果,比如自己想查看第一和第二条数据,如下:

      如果想查看第三和第四条数据,需要我们越过第一和第二进行查看,如下:

      排序查询

      sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排序,而 -1 是用于降序排序。语法如下所示:

        db.collection.find().sort({KEY:1})

        db.集合名称.find().sort(排序方式)

        举个例子,以年龄进行降序,如下:

        正则的复杂条件查询

        MongoDB的模糊查询是通过正则表达式的方式实现,正则表达式是js的语法,其格式为:

          db.collection.find({field:/正则表达式/})

          db.集合名称.find({字段:/正则表达式/})

          比如我想查询名称为王五的数据,如下:

          比如我想匹配任何 age 结尾为8的数据,如下:

          比较查询

          比较查询通过使用 < , <= , > , >= 这些符合进行操作,其基本格式如下:

            db.集合名称.find( {"field" : {$gt : value}} ) // 大于:field > value
            db.集合名称.find( {"field" : {$lt : value}} ) // 小于:field < value
            db.集合名称.find( {"field" : {$gte : value}} ) // 大于等于:field >= value
            db.集合名称.find( {"field" : {$lte : value}} ) // 小于等于:field <= value
            db.集合名称.find( {"field" : {$ne : value}} ) // 不等于:field != value

             示例:查询年龄大于等于20的人的数据:

            包含查询

            包含使用 $in 操作符,如下:

            不包含使用 $nin 操作符,如下:

            条件连接查询

            我们如果需要查询通俗满足两个以上条件,需要使用 $and 操作符将条件进行关联(相当于 SQL 中的 and)。其格式为:$and: [ {},{},{} ],举例如下:

            如果两个以上条件之间是或者的关系,我们使用操作符进行关联,与前面 and 的使用方式相同的格式为:举例如下:

            总结

            查询所有数据:db.collection.find();

            条件查询数据:db.collection.find({条件})
            查询符合条件的第一条记录:db.collection.findOne({条件})
            查询符合条件的前几条记录:db.collection.find({条件}).limit(条数)

            查询符合条件的跳过的记录:db.collection.find({条件}).skip(条数)
            修改数据:db.collection.update({条件},{修改后的数据}) 或 db.collection.update({条件},{$set:{要修改部分的字段:数据})
            修改数据并自增某字段值:db.collection.update({条件},{$inc:{自增的字段:步进值}})

            删除数据:db.collection.remove({条件})
            统计查询:db.collection.count({条件})
            模糊查询:db.collection.find({字段名:/正则表达式/})

            条件比较运算:db.collection.find({字段名:{$gt:值]})
            包含查询:db.collection.find({字段名:{$in:[值1,值2]}}) 或 db.collection.find({字段名:{$nin:[值1,值2]}])

            条件连接查询:db.collection.find({$and: [{条件1},{条件2]]}) 或 db.collection.find({$or :[{条件1},{条件2}]})

              版权声明:本文内容始发于CSDN>作者 : 亦世凡华、,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
              本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。
              始发链接:https://z5qyj5pyi.blog.csdn.net/article/details/129011365?spm=1001.2014.3001.5502
              在此特别鸣谢:CSDN博主>亦世凡华、的创作。
              本文已获原作者亦世凡华、授权发布在本公众号;
              原作者已在本公众号关联运营账号,故在此声明本文原创为CSDN亦世凡华。
              此篇文章的所有版权归原作者所有,商业转载建议请联系原作者,非商业转载请注明出处。


              文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论