博客
关于我
文档的查询
阅读量: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 Innodb 锁机制
查看>>
MySQL InnoDB中意向锁的作用及原理探
查看>>
MySQL InnoDB事务隔离级别与锁机制深入解析
查看>>
Mysql InnoDB存储引擎 —— 数据页
查看>>
Mysql InnoDB存储引擎中的checkpoint技术
查看>>
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
查看>>
MySQL InnoDB引擎的锁机制详解
查看>>
Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
查看>>
mysql InnoDB数据存储引擎 的B+树索引原理
查看>>
mysql innodb通过使用mvcc来实现可重复读
查看>>
mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
查看>>
Mysql join原理
查看>>
mysql order by多个字段排序
查看>>
MySQL Order By实现原理分析和Filesort优化
查看>>
mysql problems
查看>>
mysql replace first,MySQL中处理各种重复的一些方法
查看>>
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
查看>>
Mysql Row_Format 参数讲解
查看>>
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>