MongoDB 05_查找操作

MongoDB的查询操作

1,find() 方法 已过时

find()以非结构化的方式来显示所有文档,返回一个数组

语法:

db.collection.find(
	query, //可选,使用查询操作符指定查询条件
	projection  //可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
)

//投影操作类似SQL中的 select name,age from stus 中的 name,age

指定 projection 格式如下,有两种模式
db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键

例子:

>db.stus.find(
	{name:'铁扇公主'},
	{name:1,age:1}
)

>db.stus.find(
	{name:'铁扇公主'},
	{name:0,age:0}
)

结果:

//结果1
{ _id: ObjectId("609f96456f765a36017e2a3c"),
  name: '铁扇公主',
  age: 22 }

//结果2
{ _id: ObjectId("609f96456f765a36017e2a3c"),
  gender: 'female',
  address: '火焰山' }

2, findOne() 方法,返回一个文档

语法:

db.collection.find(
	query, //可选,使用查询操作符指定查询条件
	projection  //可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
)

例子:

>db.stus.find({gender:'female')
{ _id: ObjectId("609f911d6f765a36017e2a35"),
  name: '白骨精',
  gender: 'female',
  age: 18,
  address: '山洞' }

3,查询条件

如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

操作格式范例RDBMS中的类似语句
等于{<key>:<value>}db.col.find({"by":"菜鸟教程"}).pretty()where by = '菜鸟教程'
小于{<key>:{$lt:<value>}}db.col.find({"likes":{$lt:50}}).pretty()where likes < 50
小于或等于{<key>:{$lte:<value>}}db.col.find({"likes":{$lte:50}}).pretty()where likes <= 50
大于{<key>:{$gt:<value>}}db.col.find({"likes":{$gt:50}}).pretty()where likes > 50
大于或等于{<key>:{$gte:<value>}}db.col.find({"likes":{$gte:50}}).pretty()where likes >= 50
不等于{<key>:{$ne:<value>}}db.col.find({"likes":{$ne:50}}).pretty()where likes != 50

4,and条件

语法:

>db.col.find({key1:value1, key2:value2}).pretty()

例子:

>db.stus.find({age:18,name:'白骨精'})
{ _id: ObjectId("609f911d6f765a36017e2a35"),
  name: '白骨精',
  gender: 'female',
  age: 18,
  address: '山洞' }

5,or条件

语法:

db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

例子:

db.stus.find({$or:[
	{name:'铁扇公主'},
	{name:'白骨精'}
]})

结果:

{ _id: ObjectId("609f911d6f765a36017e2a35"),
  name: '白骨精',
  gender: 'female',
  age: 18,
  address: '山洞' }
{ _id: ObjectId("609f96456f765a36017e2a3c"),
  name: '铁扇公主',
  gender: 'female',
  age: 22,
  address: '火焰山' }

6,or and 联合使用

语法:

db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]  }).pretty()
//like > 50 and by='菜鸟教程' or title='MongoDB 教程' 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值