MongoDB基础操作二(文档查询)

基础查询语法:

find():db.COLLECTION_NAME.find()

Case:

> use post
> db.post.insert([
{
   title: 'MongoDB Overview',
   description: 'MongoDB is no sql database',
   by: 'zhongrun',
   url: 'http://www.xiaojun.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100
},
{
   title: 'NoSQL Database',
   description: "NoSQL database doesn't have tables",
   by: 'zhognrun',
   url: 'http://www.xiaojun.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 20,
   comments: [
      {
         user:'zhongrun',
         message: 'My first comment',
         dateCreated: new Date(2022,02,10,2,35),
         like: 0
      }
   ]
}
])

数据查询:

> db.post.find()

效果:
在这里插入图片描述pretty()效果:
在这里插入图片描述 pretty相比普通的find()效果查询出来的结果更加的美观直接。也可以进行设置完成定制化。如果你想让 mongo shell 始终以 pretty 的方式显示返回数据,可以通过下面的指令实现:

echo "DBQuery.prototype._prettyShell = true" >> ~/.mongorc.js

设置之后默认的显示效果就是pretty()效果。

MongoDB中的 AND操作:
用法:db.mycol.find({ key1: value1, key2: value2 }).pretty()
Case:

> db.post.find({"by":"zhongrun","to": "IBM"}).pretty()

如上语句就可以查找出 by 字段为 ‘zhognrun’,to 字段为 ‘IBM’ 的所有记录,意思是找出系统中由 zhongrun发送给 IBM的所有邮件。

MongoDB中的OR操作:
MongoDB 中,OR 查询语句以 $or 作为关键词,用法如下:

> db.users.find(
  {
    $or: [
      {key1: value1}, {key2:value2}
    ]
  }
).pretty()
> db.users.find({
    $or:[
        {"by":"zhongrun"},
        {"title": "MongoDB Overview"}
    ]
}).pretty()

对应的RDBMS语句为:

SELECT * FROM post WHERE by = 'zhongrun' OR title = 'MongoDB Overview'

同时使用AND OR:
Case:

> db.post.find({
    "likes": {$gt:10},
    $or: [
        {"by": "zhongrun"},
        {"title": "MongoDB Overview"}
    ]
}).pretty()

{$gt:10} 表示大于 10,另外,$lt 表示小于、$gte 表示大于等于、$lte 表示小于等于、$ne 表示不等于。
如果这样的符号记起来稍微有点麻烦,可以根据它们的全写配合记忆:

gt:大于 greater than
lt:小于 less than
gte:大于或等于 greater than equal
lte:小于或等于 less than equal

小节:find 是查询一个集合中文档的指令,其作用相当于关系型数据库的 SELECT ,通过在 find 方法中添加键值对,可以实现 AND 条件查询;对于 OR 查询,需要使用 $or 变量并且其后加上选择查询的条件数组。MongoDB 的模糊查询可以用正则匹配的方式实现。

# 以 'start' 开头的匹配式:
{"name":/^start/}

# 以 'tail' 结尾的匹配式:
{"name":/tail$/}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值