MongoDB进行查询文档操作实例是怎样的
Admin 2022-11-23 群英技术资讯 956 次浏览
MongoDB简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
下面给大家介绍MongoDB查询文档操作的实例
先把student删除,再重新插入数据
> db.student.drop() true > db.student.insert([{ "_id" : 1, "name" : "zhangsan", "age": 27, "sex": 1 }, { "_id" : 2, "name" : "lisi", "age": 27 } ,{ "_id" : 3, "name" : "wangwu", "age": 30 }, { "_id" : 4, "name" : "zhaoliu", "age": 28 }, { "_id" : 5, "name" : "qianliu", "age": 33 }, { "_id" : 6, "name" : "sunba", "age": 32 }]) BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 6, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] }) > db.student.find() { "_id" : 1, "name" : "zhangsan", "age" : 27 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 6, "name" : "sunba", "age" : 32 }
1、查询指定键
db.集合名称.find({查询条件},{指定键})
指定键:1表示显示,0表示不显示,_id默认显示
> db.student.find({},{name:1}) { "_id" : 1, "name" : "zhangsan" } { "_id" : 2, "name" : "lisi" } { "_id" : 3, "name" : "wangwu" } { "_id" : 4, "name" : "zhaoliu" } { "_id" : 5, "name" : "qianliu" } { "_id" : 6, "name" : "sunba" } > db.student.find({},{_id:0, age:0}) { "name" : "zhangsan", "sex" : 1 } { "name" : "lisi" } { "name" : "wangwu" } { "name" : "zhaoliu" } { "name" : "qianliu" } { "name" : "sunba" } > db.student.find({},{_id:0, name:1}) { "name" : "zhangsan" } { "name" : "lisi" } { "name" : "wangwu" } { "name" : "zhaoliu" } { "name" : "qianliu" } { "name" : "sunba" }
2、各种查询方式
$lt: $gte:>= $ne:!= > db.student.find({age:{$lt:30}}) { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } > db.student.find({age:{$ne:27}}) { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 6, "name" : "sunba", "age" : 32 }
$in:包含
$nin:不包含
> db.student.find({age:{$in:[27,28]}}) { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } > db.student.find({age:{$nin:[27,28]}}) { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 6, "name" : "sunba", "age" : 32 }
$or:或者
> db.student.find({$or:[{age:{$lt:29}}, {name:"sunba"}]}) { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 6, "name" : "sunba", "age" : 32 }
null:空值
> db.student.find({sex: null}) { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 6, "name" : "sunba", "age" : 32 }
$type:键是某种类型的
double:1
string:2
...
> db.student.insert({_id:7, name:7, age:70}) WriteResult({ "nInserted" : 1 }) > db.student.find({name: {$type: 2}}) { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 6, "name" : "sunba", "age" : 32 } > db.student.find({name: {$type: 1}}) { "_id" : 7, "name" : 7, "age" : 70 }
正则表达式
> db.student.find({name: /si\b/}) { "_id" : 2, "name" : "lisi", "age" : 27 }
db.集合名称.findOne({查询条件},{指定键})
查询出符合条件的第一条数据
> db.student.findOne() { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }
db.集合名称.find({查询条件},{指定键}).limit(数字)
查询前几条数据
> db.student.find().limit(3) { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 3, "name" : "wangwu", "age" : 30 }
db.集合名称.find({查询条件},{指定键}).skip(数字)
跳过前几条数据
> db.student.find().skip(2) { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 6, "name" : "sunba", "age" : 32 } { "_id" : 7, "name" : 7, "age" : 70 }
可以使用limit()和skip()实现分页
> db.student.find().skip(0).limit(3) { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 3, "name" : "wangwu", "age" : 30 } > db.student.find().skip(3).limit(3) { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 6, "name" : "sunba", "age" : 32 } > db.student.find().skip(6).limit(3) { "_id" : 7, "name" : 7, "age" : 70 }
db.集合名称.find().sort({键:数字})
数字为1表示升序,数字为2表示降序
> db.student.find().sort({age:1}) { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 6, "name" : "sunba", "age" : 32 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 7, "name" : 7, "age" : 70 } > db.student.find().sort({age:1, _id:-1}) { "_id" : 2, "name" : "lisi", "age" : 27 } { "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } { "_id" : 4, "name" : "zhaoliu", "age" : 28 } { "_id" : 3, "name" : "wangwu", "age" : 30 } { "_id" : 6, "name" : "sunba", "age" : 32 } { "_id" : 5, "name" : "qianliu", "age" : 33 } { "_id" : 7, "name" : 7, "age" : 70 }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
文本给大家分享的是MongoDB 中聚合统计的内容,主要介绍$SUM表达式。我们在计算总和的使用,经常会使用到$SUM,因此分享一些相关示例给大家作参考,感兴趣的朋友可以了解一下。
接触过SQL都知道,索引是很重要的内容。在MongoDB中索引也是很重要的,数据库的索引能够提高查询操作的性能,能快速获取我们想要的介绍。下面我们就一起来了解一下MongoDB索引。
查看mongodb性能的方法:1、使用mongostat查看,mongostat是mongdb自带的状态检测工具。2、使用web控制台查看。3、使用MongoDB Monitoring Service查看。
大家在学习MongoDB的时候都需要学习MongoDB日常使用技巧,但是有很多小伙伴们都知道MongoDB日常使用技巧有哪些,那么下面就让爱站小编为大家介绍MongoDB的日常使用技巧吧。
打开mongodb数据库的方法:在cmd进入mongodb安装目录下的bin目录,然后执行“mongod -db:path D\mongod\data\db”命令即可打开。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008