加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.52wenzhou.com/)- 云专线、建站、虚拟专用网络、智能边缘云、设备管理!
当前位置: 首页 > 服务器 > 系统 > 正文

mongodb数据查询的方式

发布时间:2023-12-19 05:02:32 所属栏目:系统 来源:DaWei
导读: 这篇文章给大家分享的是有关mongodb数据查询的内容,介绍了一些mongodb数据查询实例,具有一定的参考借鉴价值,有这方面学习需要的朋友可以看看。

导入测试数据

在开始之前我们
这篇文章给大家分享的是有关mongodb数据查询的内容,介绍了一些mongodb数据查询实例,具有一定的参考借鉴价值,有这方面学习需要的朋友可以看看。

导入测试数据
       
在开始之前我们应该先准备数据方便演示,这里我插入的了几条数据,数据如下:
db.user.insertMany(
[{
name:'jack',
age:22,
sex:'Man',
tags:['python','c++','c'],
grades:[22,33,44,55],
school:{
name:'shida',
city:'xuzhou'
}
},{
name:'jhon',
age:33,
sex:null,
tags:['python','java'],
grades:[66,22,44,88],
school:{
name:'kuangda',
city:'xuzhou'
}
},
{
name:'xiaoming',
age:33,
tags:['python','java'],
grades:[66,22,44,88],
school:{
name:'kuangda',
city:'xuzhou'
}
}
]
)
find()
其中query表示查找的条件,相当于mysql中where子句,projection列出你想要查找的数据,格式为db.collection.find(find(<query filter>, <projection>))
       
实例:
下面不带参数的查找,将会查找出所有的结果
 db.find().pretty();
 
 //输出结果
 
 
{    
 "_id" : ObjectId("59056f81299fe049404b2899"), 
 "name" : "jack",  
 "age" : 22,   
 "tags" : [   
 "python",  
 "c++",  
 "c"   
 ],   
 "grades" : [   
 22,   
 33,   
 44,   
 55   
 ],   
 "school" : {   
 "name" : "shida",  
 "city" : "xuzhou"  
 }   
}

下面找出满足name为jack的数据,并且只输出name,age,这里的_id是默认输出的,如果不想输出将将它设置为0,想要输出那个字段将它设置为1
db.user.find({name:'jack'},{name:1,age:1})
//输出结果
{ "_id" : ObjectId("59056f81299fe049404b2899"), "name" : "jack", "age" : 22 }
db.user.find({name:'jack'},{name:1,age:1,_id:0})
//输出结果
{"name" : "jack", "age" : 22 }
注意:这里的一个 projection不能 同时 指定包括和排除字段,除了排除 _id字段。 在 显式包括 字段的映射中,_id 字段是唯一一个您可以 显式排除 的。
       
查询内嵌文档

上述例子中插入的school数据就表示内嵌文档
完全匹配查询
完全匹配查询表示school中的查询数组必须和插入的数组完全一样,顺序都必须一样才能查找出来
db.user.find({name:'jack',school:{name:'shida',city:'xuzhou'}});
//输出结果
{ "_id" : ObjectId("59056f81299fe049404b2899"), "name" : "jack", "age" : 22, "tags" : [ "python", "c++", "c" ], 
"grades" : [ 22, 33, 44, 55 ], "school" : { "name" : "shida", "city" : "xuzhou" } }
//下面是指定输出的字段,这里的school.name表示只输出school文档中name字段,必须加引号
db.user.find({name:'jack',school:{name:'shida',city:'xuzhou'}},{name:1,age:1,'school.name':1});
//输出结果
{ "_id" : ObjectId("59056f81299fe049404b2899"), "name" : "jack", "age" : 22, "school" : { "name" : "shida" } }

键值对查询

可以通过键值对查询,不用考虑顺序,比如 'school.name':'shida' ,表示查询学校名字为shida的数据,这里的引号是必须要的
db.user.find({'school.name':'shida'},{name:1,school:1});
//输出结果
{ "_id" : ObjectId("59056f81299fe049404b2899"), "name" : "jack", "school" : { "name" : "shida", "city" : "xuzhou" } }

查询操作符

下面我们将配合查询操作符来执行复杂的查询操作,比如元素查询、 逻辑查询 、比较查询操作。我们使用下面的比较操作符"$gt" 、"$gte"、 "$lt"、 "$lte"(分别对应">"、 ">=" 、"<" 、"<=")

关于mongodb数据查询的介绍就到这,上述示例仅供大家参考,希望大家阅读完这篇文章能有所收获,想要了解更多mongodb数据查询内容,大家可以关注其他相关文章。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章