Mongodb文档的查询操作

本文介绍了MongoDB中查询数据的方法,包括find和findOne函数的使用,以及如何通过and、or等操作符进行复杂条件筛选。此外,还展示了如何利用投影操作符来选择返回的字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB查询
两种方式:
db.collection.find(query,projection) – query:可选,使用查询指定条件;projection:可选,使用投影操作符指定返回的键,默认省略
db.collection.findOne(query,projection)
另外使用db.collection.find()。pretty() – 可以易读格式化显示
比如:

db.c1.find()
{ “_id” : ObjectId(“5958d8cda6e810ff1933a6dd”), “name” : “china” }
{ “_id” : ObjectId(“5958ef83068141c2055cce10”), “name” : “usa”, “age” : 1 }
db.c1.find().pretty()
{ “_id” : ObjectId(“5958d8cda6e810ff1933a6dd”), “name” : “china” }
{ “_id” : ObjectId(“5958ef83068141c2055cce10”), “name” : “usa”, “age” : 1 }
db.c3.find().pretty()
db.c1.findone()
2017-07-09T14:40:34.028+0800 E QUERY [thread1] TypeError: db.c1.findone is no
t a function :
@(shell):1:1
db.c1.findOne()
{ “_id” : ObjectId(“5958d8cda6e810ff1933a6dd”), “name” : “china” }

过滤显示列操作:

db.c1.find({“age”:{gt:0},or:[{“name”:”usa”},{“name”:”usa2”}]},{“age”:1})
{ “_id” : ObjectId(“5958ef83068141c2055cce10”), “age” : 1 }
{ “_id” : ObjectId(“5961d22dd233e9d684bd0299”), “age” : 2 }
db.c1.find({“age”:{gt:0},or:[{“name”:”usa”},{“name”:”usa2”}]},{“age”:1,_id:0
})
{ “age” : 1 }
{ “age” : 2 }
db.c1.find({“age”:{gt:0},or:[{“name”:”usa”},{“name”:”usa2”}]},{_id:0})
{ “name” : “usa”, “age” : 1 }
{ “name” : “usa2”, “age” : 2 }

一些操作:
这里写图片描述

and,or实例
and操作

db.c1.find({“name”:”usa”,”age”:1}).pretty()
{ “_id” : ObjectId(“5958ef83068141c2055cce10”), “name” : “usa”, “age” : 1 }
db.c1.find({“name”:”usa”,”age”:1})
{ “_id” : ObjectId(“5958ef83068141c2055cce10”), “name” : “usa”, “age” : 1 }

or操作

db.c1.find({or:[{“name”:”usa”},{“age”:1}]})  
  { “_id” : ObjectId(“5958ef83068141c2055cce10”), “name” : “usa”, “age” : 1 }  
  db.c1.find({
or:[{“name”:”usa”},{“age”:1}]}).pretty()
{ “_id” : ObjectId(“5958ef83068141c2055cce10”), “name” : “usa”, “age” : 1 }

and,or操作,相当于 where age>0 and (name=’usa’ or name=’usa2’)

db.c1.find({“age”:{gt:0},or:[{“name”:”usa”},{“name”:”usa2”}]})
{ “_id” : ObjectId(“5958ef83068141c2055cce10”), “name” : “usa”, “age” : 1 }
{ “_id” : ObjectId(“5961d22dd233e9d684bd0299”), “name” : “usa2”, “age” : 2 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值