一、mongodb的特点:
mongodb数据库是非关系数据库,mongodb中没有表的概念,数据都是存储在集合中的。
易扩展: NoSQL数据库种类繁多, 但是⼀个共同的特点都是去掉关系数据库的关系型特性。 数据之间⽆关系, 这样就⾮常容易扩展。
⼤数据量, ⾼性能: NoSQL数据库都具有⾮常⾼的读写性能, 尤其在⼤数据量下, 同样表现优秀。 这得益于它的⽆关系性, 数据库的结构简单
灵活的数据模型: NoSQL⽆需事先为要存储的数据建⽴字段, 随时可以存储⾃定义的数据格式。
二、mongodb的数据类型:
Object ID:文档ID
String:字符串 该属性是最常用的数据类型,并且为一个有效的UTF-8字符集
Boolean:存储一个布尔值,true或者false
Integer:整数 可以是32位或64位,取决于服务器
Double:浮点值
Arrays:数组或列表,多个值存储到一个键
Object:用于嵌入式的文档,即一个值为一个文档
Null:Null值
Timestamp: 时间戳 表示1970-1-1到现在的总秒数
Date:存储当前日期或时间的UNIX时间格式
三、常用命令:
1 查询数据:
db.集合.find() 查询集合下全部数据
db.集合.find(query)–带条件查询
db.papers.find({"baseId":"lnrb"})
查询操作符:
操作 | 格式 | 范例 |
---|---|---|
等于 | {“key1”:“value1”} | db.papers.find({“baseId”:“lnrb”}) |
小于 | {“key1”:{$lt:“value”}} | db.papers.find({“timestamp”:{$lt:1692633600000}}) |
小于或等于 | {“key1”:{$lte:“value”}} | db.papers.find({“timestamp”:{$lte:1692633600000}}) |
大于 | {“key1”:{$gt:“value”}} | db.papers.find({“timestamp”:{$gt:1692633600000}}) |
大于或等于 | {“key1”:{$gte:“value”}} | db.papers.find({“timestamp”:{$gte:1692633600000}}) |
不等于 | {“key1”:{$ne:“value”}} | db.papers.find({“timestamp”:{$ne:1692633600000}}) |
存在 | {“key1”:{$exists:true}} | db.papers.find({“timestamp”:{$exists:true}}) |
db.集合.find(query,projection)–只输出个别字段
db.papers.find({"baseId":"lnrb"},{"baseId":1,"type":1})
db.集合.find(query,projection)–输出屏蔽个别字段
db.papers.find({"baseId":"lnrb"},{"timestamp":0,"pubDate":0,"_class":0})
db.papers.findOne()–查询一条数据
db.papers.findOne({"baseId":"lnrb"})
db.papers.find().limit(number)–读取指定数量的⽂档
db.papers.find({"baseId":"lnrb"}).limit(2)
db.papers.find().sort({“字段”:-1/1})–排序,1为升序,-1为降序
db.papers.find({"baseId":"lnrb"},{"timestamp":0,"_class":0}).sort({"pubDate":1})
db.papers.find(query).count()–计数
db.papers.find({"baseId":"lnrb"}).count()
多条件查询
查询条件之间为“且”的关系
db.papers.find({"key1":"value1","key2":"value2"})
查询条件之间为“或”的关系
db.papers.find({$or:[{"baseId":"lnrb"},{"baseId":"shb"}]})
模糊查询
模糊查询
db.papers.find({"baseId":{$regex:/rb/}})
查询以某字段为开头的文档
db.papers.find({"baseId":{$regex:/^hlj/}})
查询以某字段为结尾的文档
db.papers.find({"baseId":{$regex:/rb^/}})
查询条件忽略大小写,“i” 代表忽略大小写的意思。
db.papers.find({"baseId":{$regex:/hljrb/i}})