博客
关于我
文档的查询
阅读量: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_secure_installation安全脚本执行过程介绍
查看>>
MySQL 的Rename Table语句
查看>>
MySQL 的全局锁、表锁和行锁
查看>>
mysql 的存储引擎介绍
查看>>
MySQL 的存储引擎有哪些?为什么常用InnoDB?
查看>>
Mysql 知识回顾总结-索引
查看>>
Mysql 笔记
查看>>
MySQL 精选 60 道面试题(含答案)
查看>>
mysql 索引
查看>>
MySQL 索引失效的 15 种场景!
查看>>
MySQL 索引深入解析及优化策略
查看>>
MySQL 索引的面试题总结
查看>>
mysql 索引类型以及创建
查看>>
MySQL 索引连环问题,你能答对几个?
查看>>
Mysql 索引问题集锦
查看>>
Mysql 纵表转换为横表
查看>>
mysql 编译安装 window篇
查看>>
mysql 网络目录_联机目录数据库
查看>>
MySQL 聚簇索引&&二级索引&&辅助索引
查看>>
Mysql 脏页 脏读 脏数据
查看>>