博客
关于我
文档的查询
阅读量: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 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>