博客
关于我
文档的查询
阅读量:619 次
发布时间:2019-03-13

本文共 6054 字,大约阅读时间需要 20 分钟。

MongoDB数据库查询实例分析与操作指南

1. 数据库基础查询

1.1 记录总数统计

db.comment.count()

返回结果:5

1.2 用户ID查询

db.comment.count({userid: "1003"})

返回结果:2

2. 分页查询

2.1 查询前两条记录

db.comment.find().limit(2)

返回结果:

{    "_id": "1",     "articleid": "100001",     "content": "我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他。",    "userid": "1002",     "nickname": "相忘于江湖",     "createdatetime": ISODate("1970-01-01T00:00:00Z"),     "likenum": 1000,     "state": "1"}{    "_id": "2",     "articleid": "100001",     "content": "我夏天空腹喝凉开水,冬天喝温开水",    "userid": "1005",     "nickname": "伊人憔悴",     "createdatetime": ISODate("2019-08-05T23:58:51.485Z"),     "likenum": 888,     "state": "1"}

2.2 跳过前两条记录,查询两条记录

db.comment.find().limit(2).skip(2)

返回结果:

{    "_id": "3",     "articleid": "100001",     "content": "我一直喝凉开水,冬天夏天都喝。",    "userid": "1004",     "nickname": "杰克船长",     "createdatetime": ISODate("2019-08-06T01:05:06.321Z"),     "likenum": 666,     "state": "1"}{    "_id": "4",     "articleid": "100001",     "content": "专家说不能空腹吃饭,影响健康。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("2019-08-06T08:18:35.288Z"),     "likenum": 2000,     "state": "1"}

2.3 跳过前四条记录,查询第五条

db.comment.find().limit(2).skip(4)

返回结果:

{    "_id": "5",     "articleid": "100001",     "content": "研究表明,刚烧开的水千万不能喝,因为烫嘴。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("1970-01-01T00:00:00Z"),     "likenum": 3000,     "state": "1"}

3. 排序查询

3.1 按用户ID升序排列

db.comment.find().sort({userid: 1})

返回结果:

{    "_id": "1",     "userid": "1002"}{    "_id": "4",     "userid": "1003"}{    "_id": "5",     "userid": "1003"}{    "_id": "3",     "userid": "1004"}{    "_id": "2",     "userid": "1005"}

3.2 投影查询(仅 userid),按用户ID升序排列

db.comment.find({},{userid: 1}).sort({userid: 1})

返回结果:

{    "_id": "1",     "userid": "1002"}{    "_id": "4",     "userid": "1003"}{    "_id": "5",     "userid": "1003"}{    "_id": "3",     "userid": "1004"}{    "_id": "2",     "userid": "1005"}

3.3 按用户ID降序排列

db.comment.find({},{userid: 1}).sort({userid: -1})

返回结果:

{    "_id": "2",     "userid": "1005"}{    "_id": "3",     "userid": "1004"}{    "_id": "4",     "userid": "1003"}{    "_id": "5",     "userid": "1003"}{    "_id": "1",     "userid": "1002"}

4. 复杂查询

4.1 查询包含“开水”的内容

db.comment.find({content: /开水/})

返回结果:

{    "_id": "2",     "articleid": "100001",     "content": "我夏天空腹喝凉开水,冬天喝温开水",    "userid": "1005",     "nickname": "伊人憔悴",     "createdatetime": ISODate("2019-08-05T23:58:51.485Z"),     "likenum": 888,     "state": "1"}{    "_id": "3",     "articleid": "100001",     "content": "我一直喝凉开水,冬天夏天都喝。",    "userid": "1004",     "nickname": "杰克船长",     "createdatetime": ISODate("2019-08-06T01:05:06.321Z"),     "likenum": 666,     "state": "1"}

5. 比较查询

5.1 查询点赞数量大于 700 的记录

db.comment.find({likenum: { $gt: NumberInt(700) }})

返回结果:

{    "_id": "1",     "articleid": "100001",     "content": "我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他。",    "userid": "1002",     "nickname": "相忘于江湖",     "createdatetime": ISODate("1970-01-01T00:00:00Z"),     "likenum": 1000,     "state": "1"}{    "_id": "2",     "articleid": "100001",     "content": "我夏天空腹喝凉开水,冬天喝温开水",    "userid": "1005",     "nickname": "伊人憔悴",     "createdatetime": ISODate("2019-08-05T23:58:51.485Z"),     "likenum": 888,     "state": "1"}{    "_id": "4",     "articleid": "100001",     "content": "专家说不能空腹吃饭,影响健康。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("2019-08-06T08:18:35.288Z"),     "likenum": 2000,     "state": "1"}{    "_id": "5",     "articleid": "100001",     "content": "研究表明,刚烧开的水千万不能喝,因为烫嘴。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("1970-01-01T00:00:00Z"),     "likenum": 3000,     "state": "1"}

6. 包含查询

6.1 查询包含 userid 为 1003 或 1004 的记录

db.comment.find({userid: { $in: ["1003", "1004"] }})

返回结果:

{    "_id": "3",     "articleid": "100001",     "content": "我一直喝凉开水,冬天夏天都喝。",    "userid": "1004",     "nickname": "杰克船长",     "createdatetime": ISODate("2019-08-06T01:05:06.321Z"),     "likenum": 666,     "state": "1"}{    "_id": "4",     "articleid": "100001",     "content": "专家说不能空腹吃饭,影响健康。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("2019-08-06T08:18:35.288Z"),     "likenum": 2000,     "state": "1"}{    "_id": "5",     "articleid": "100001",     "content": "研究表明,刚烧开的水千万不能喝,因为烫嘴。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("1970-01-01T00:00:00Z"),     "likenum": 3000,     "state": "1"}

7. 条件连接查询

7.1 查询 likenum 大于等于 700 并且小于 2000 的记录

db.comment.find({ $and: [{likenum: { $gte: NumberInt(700) }}, {likenum: { $lt: NumberInt(2000) }}] })

返回结果:

{    "_id": "1",     "articleid": "100001",     "content": "我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他。",    "userid": "1002",     "nickname": "相忘于江湖",     "createdatetime": ISODate("1970-01-01T00:00:00Z"),     "likenum": 1000,     "state": "1"}{    "_id": "2",     "articleid": "100001",     "content": "我夏天空腹喝凉开水,冬天喝温开水",    "userid": "1005",     "nickname": "伊人憔悴",     "createdatetime": ISODate("2019-08-05T23:58:51.485Z"),     "likenum": 888,     "state": "1"}

7.2 查询 userid 为 1003 或点赞数小于 1000 的记录

db.comment.find({ $or: [{userid: "1003"}, {likenum: { $lt: NumberInt(1000) }}] })

返回结果:

{    "_id": "2",     "articleid": "100001",     "content": "我夏天空腹喝凉开水,冬天喝温开水",    "userid": "1005",     "nickname": "伊人憔悴",     "createdatetime": ISODate("2019-08-05T23:58:51.485Z"),     "likenum": 888,     "state": "1"}{    "_id": "3",     "articleid": "100001",     "content": "我一直喝凉开水,冬天夏天都喝。",    "userid": "1004",     "nickname": "杰克船长",     "createdatetime": ISODate("2019-08-06T01:05:06.321Z"),     "likenum": 666,     "state": "1"}{    "_id": "4",     "articleid": "100001",     "content": "专家说不能空腹吃饭,影响健康。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("2019-08-06T08:18:35.288Z"),     "likenum": 2000,     "state": "1"}{    "_id": "5",     "articleid": "100001",     "content": "研究表明,刚烧开的水千万不能喝,因为烫嘴。",    "userid": "1003",     "nickname": "凯撒",     "createdatetime": ISODate("1970-01-01T00:00:00Z"),     "likenum": 3000,     "state": "1"}

转载地址:http://anpaz.baihongyu.com/

你可能感兴趣的文章
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>
MySQL 设置数据库的隔离级别
查看>>
MySQL 证明为什么用limit时,offset很大会影响性能
查看>>
Mysql 语句操作索引SQL语句
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)
查看>>
MySQL 调优/优化的 101 个建议!
查看>>
mysql 转义字符用法_MySql 转义字符的使用说明
查看>>
mysql 输入密码秒退
查看>>
mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
查看>>
mysql 通过查看mysql 配置参数、状态来优化你的mysql
查看>>
mysql 里对root及普通用户赋权及更改密码的一些命令
查看>>