MongoDB--》文档查询的详细具体操作
Posted 亦世凡华、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB--》文档查询的详细具体操作相关的知识,希望对你有一定的参考价值。
目录
统计查询
统计查询使用count()方法,其语法格式如下:
db.collection.count(query,options)
Parameter | Type | Description |
---|---|---|
query | document | 查询选择条件 |
options | document | 可选,用于修改计数的额外选项 |
接下来我往我空的集合 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])
以上是关于MongoDB--》文档查询的详细具体操作的主要内容,如果未能解决你的问题,请参考以下文章