mongodb(非关系型数据库)
1. 定义:
非关系型(no-sql),NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”。是非关系型数据存储的广义定义,通常以key-value形式存储数据,没有表结构。
2. 特点:
高并发读写需求、海量数据的高效率读写、 高扩展性和可用性
3.初识
在mongodb中是没有表和字段的,取而代之的是集合(collection)和文档(document)
4. 使用
语法:mongo 127.0.0.1:27017
ip:默认主机ip \ 27017:默认端口号
简单的连接方式:mongo(但是可能出现连接失败)
5. 操作
-
查看数据库:show dbs (默认是有admin和local)
-
切换/新增:(如果有就是切换 如果没有就是新增)数据库
-
use 空格 要切换或者新增的库
注意:新增的是没有集合的,虽然创建好了,但是使用show dbs是不显示的 -
创建集合:db.起个集合名字.insert({键:值})’
-
查看结合:
show collections -
删除库:必须先切换到你要删的库 use空格库名
db.dropDatabase() -
删除集合:必须先要切换到指定要删除集合的库中
db.要删除的集合名.drop() -
只创建集合的语法
db.createCollection(“要创建集合的名字”); -
查询:db.要查询的集合.find()
注:id是自动添加,如果手动增加id,不要重名 -
db.要插入的集合名.insert([{k:v},{k:v}])
-
查询 按照条件进行查询
db.要查询的集合名.find({k:v}) -
查询 格式化查询数据
db.要查询的数据find({k:v},{k:0/1}) 0不显示 1显示 -
查询 格式化查询数据
db.要查询的数据find({k:v},{k:0/1}) 0不显示 1显示 -
条件查询
Db.查询的集合.find({“要查询的k”:{条件:值}})
条件:
(>) 大于 - $gt
(<) 小于 - $lt
(>=) 大于等于 - $gte
(<= ) 小于等于 - $lte
(!=) 不等于 - $ne:// 例如 :
db.集合名.find({"age":{$gt:14}})
//查询age大于14的数据 -
匹配查询多个内容
db.要查询的集合.find({$or:[{查询的内容1},{查询的内容2}]}) -
排序查询
db.要查询的集合.find().sort({要排序的内容:-1倒序/1正序})注:没有包含查询键的文档也会排序
-
limit 读取指定数量的数据记录条数
skip 使用skip()方法来跳过指定数量的数据
她两一般配合使用,比如查询2和3的数据
db.aa.find().skip(2).limit(2)
- 返回结果集中的数量
Count() - 修改
db.collection.update(
{<query>},
{$set:{<update>}},
{
upsert: <boolean>,
multi: <boolean>
}
)
query:查询出要修改的数据
update:要修改的数据的值
upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是 false,不插入
multi: 可选,MongoDB 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查 出来多条记录全部
20. 删除
db.要删除的集合.remove({k:v})默认删除匹配到的所有内容
21. 只想删除一条 justOne
Mongoose是一个node的第三方库 他的作用就是帮助node 更好更高效的连接mongodb