- NoSQL简介
SQL 就是 Structor Query Language结构化查询语言。
MySQL、Oracle、SQL Server都是SQL数据库。SQL缺点就是限制字段。SQL优点就是能够轻松执行复杂查找。涉及主从查找,SQL的主从查找非常强。
NoSQL(not only SQL), 非关系型数据库。 NoSQL中只有条目的概念,每个条目可以自由地设置字段。
- MongoDB的安装
- 文件安装目录如下
- 添加到系统path变量中去
-
安装成功界面
-
数据库的基本操作
mongod
命令用来开机,建立一个目录,来存放数据数据库目录,比如c:/mongodb_data
$ mongod --dbpath c:\mongodb_data
此时不能关闭这个PowerShell窗口,如果关闭,则关闭数据库的连接。
此时需要再开一个PowerShell窗口,用
mongo
命令来管理数据库
此时就能进入mongo的REPL环境(Read-Eval-Print-Loop,读一句,执行一句显示一句)
> use student
表示使用student数据库,没有这个数据库则会自动创建。
> show dbs
显示当前所有数据库列表
> show collections
显示当前数据库的所有集合列表
mongoDB用json存储数据
文档就是一条json语句
集合就是多条json语句(文档)的集合列表
- 数据库基本操作
- 插入操作
- 单条数据插入
db.collection.insertOne()
collection(集合) 相当于表 ,db表示当前数据库
- 单条数据插入
- 插入操作
db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
* 多条数据插入 db.collection.insertMany()
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
-
数据库的查询操作
查询某个集合的所有条目
db.collection.find( {} )
比如查询db.inventory.find( {} )
,相当于SELECT * FROM inventory
相关的条件查询 需要使用 键值对来匹配。{ <field1>: <value1>, ... }
, 比如查询db.inventory.find( { item: "mat" } )
,相当于SELECT * FROM inventory WHERE item= "mat"
如果遇到特殊的操作符,格式为
{ <field1>: { <operator1>: <value1> }, ... }
比如查询db.inventory.find( { status: { $in: [ "A", "D" ] } } )
,相当于SELECT * FROM inventory WHERE status in ("A", "D")
;
遇到and 或者or的情况
db.inventory.find( { status: "A", qty: { $lt: 30 } } )
相当于SELECT * FROM inventory WHERE status = "A" AND qty < 30
db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )
相当于SELECT * FROM inventory WHERE status = "A" OR qty < 30
遇到 and 和or一起出现的情况
db.inventory.find( { status: "A", $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ] } )
相当于SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")
选择特定字段的查询操作
db.inventory.find( { status: "A" }, { item: 1, status: 1 } )
相当于SELECT _id, item, status from inventory WHERE status = "A"