mongodb
MongoDB 查询文档
MongoDB 查询文档使用 find() 方法。
find() 方法以非结构化的方式来显示所有文档
MongoDB 查询数据的语法格式如下:
db.collection.find(query, projection)
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值,只需省略该参数即可(默认省略)。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
>db.col.find().pretty()
pretty() 方法以格式化的方式来显示所有文档
除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档
**MongoDB条件语句查询 **
通过下表可以更好的理解 MongoDB 的条件语句查询:
操作 | 格式 | 范例 |
---|---|---|
等于 | {:} | db.col.find({“by”:“教程”}).pretty() |
小于 | {:{$lt:}} | db.col.find({“likes”:{$lt:50}}).pretty() |
小于或等于 | {:{$lte:}} | db.col.find({“likes”:{$lte:50}}).pretty() |
大于 | {:{$gt:}} | db.col.find({“likes”:{$gt:50}}).pretty() |
大于或等于 | {:{$gte:}} | db.col.find({“likes”:{$gte:50}}).pretty() |
不等于 | {:{$ne:}} | db.col.find({“likes”:{$ne:50}}).pretty() |
MongoDB AND 条件
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
db.test.insert({
"name" : "zs", "age" : 16 })
db.test.insert({
"name" : "lis", "age" : 17 })
db.test.insert({
"name" : "ww", "age" : 18 })
db.test.insert({
"name" : "zhaol", "age" : 19 })
db.test.insert({
"name" : "zheng", "age" : 20 })
db.test.insert({
"name" : "zhou", "age" : 20 })
db.test.insert({
"name" : "wl", "age" : 21 })
db.test.insert({
"name" : "zs", "age" : 20 })
db.test.insert({
"name" : "zs", "age" : 25 })
db.test.insert({
"name" : "ll", "age" : 25 })
db.test.insert({
"name" : "zhou", "age" : 25 })
> db.test.find({
$and:[{
name:"lis"},{
age:17}]})
{
"_id" : ObjectId("606832fa26baee6450dedf8c"), "name" : "lis", "age" : 17 }
MongoDB OR 条件
MongoDB OR 条件语句使用了关键字 $or
> db.test.find({
$or:[{
"name":"lis"},{
"age":16}]})
{
"_id" : ObjectId("606832eb26baee6450dedf8b"), "name" : "zs", "age" : 16 }
{
"_id" : ObjectId("606832fa26baee6450dedf8c"), "name" : "lis", "age" : 17 }
AND 和 OR 联合使用
这里我们找到zhou 20岁和zs 20岁的连个人显示出来
> db.test.find({
$and:[{
age:20,$or:[{
name:"zs"},{
name:"zhou"}]}]})
{
"_id" : ObjectId("6068334726baee6450dedf90"), "name" : "zhou", "age" : 20 }
{
"_id" : ObjectId("6068334726baee6450dedf92"), "name" : "zs", "age" : 20 }
如果后面加{_id:0}就不会显示_id,方便查看
如果换成{_id:1}就会只显示_id
> db.test.find({
$and:[{
age:20,$or:[{
name:"zs"},{
name:"zhou"}]}]},{
_id:0})
{
"name" : "zhou", "age" : 20 }
{
"name" : "zs", "age" : 20 }
> db.test.find({
$and:[{
age:20,$or:[{
name:"zs"},{
name:"zhou"}]}]},{
_id:1})
{
"_id" : ObjectId("6068334726baee6450dedf90") }
{
"_id" : ObjectId("6068334726baee6450dedf92") }
MongoDB 排序
MongoDB sort() 方法
在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
> db.test.find().sort({
age:1})
{
"_id" : ObjectId("606832eb26baee6450dedf8b"), "name" : "zs", "age" : 16 }
{
"_id" : ObjectId("606832fa26baee6450dedf8c"), "name" : "lis", "age" : 17 }
{
"_id" : ObjectId("6068334726baee6450dedf8d"), "name" : "ww", "age" : 18 }
{
"_id" : ObjectId("6068334726baee6450dedf8e"), "name" : "zhaol", "age" : 19 }
{
"_id" : ObjectId("6068334726baee6450dedf8f"), "name" : "zheng", "age" : 20 }
{
"_id" : ObjectId("6068334726baee6450dedf90"), "name" : "zhou", "age" : 20 }
{
"_id" : ObjectId("6068334726baee6450dedf92"), "name" : "zs", "age" : 20 }
{
"_id" : ObjectId("6068334726baee6450dedf91"), "name" : "wl", "age" : 21 }
{
"_id" : ObjectId("6068334726baee6450dedf93"), "name" : "zs", "age" : 25 }