MongoDB数据库的底层是用C++编写的。
数据储存:BSON格式(一种类似JSON的格式)。
MongoDB的特点:
1.提供一个面向文档的存储方式
2.支持丰富的查询表达式
3.查询指令使用JSON形式的标记
4.可以轻易查询文档中内嵌的对象及数组
MongoDB所支持的编程语言:
c++、python、java、PHP、c#、Ruby
数据库集合及文档的相关概念:
1.MongoDB不需要固定的表结构
2.非关系型数据库中的数据保存在文档内
3.采用BSON类型的数据格式来存储
4.每一个数据库下可以有多个集合,集合下可以有多个文档。
5.每一个文档都是由键值对形式存储的
6.每一个文档的_id都是唯一的
MongoDB和Mysql的区别
相同点:可以写多行也可以写多行
不同点:MonoDB需要区分大小写,MongoDB每个语句结尾时不加分号
MongoDB启动命令:
mongod --dbpath=..\data\db
查询数据库
show dbs
创建数据库
如果存在这个数据库就使用这个数据库,没有这个数据库就创建
刚创建数据库时,查询不到数据库的信息,因为MongoDB将创建的数据库先临时存放在内存中,当数据库中有了集合和文档才会存储
use school
删除数据库
必须首先use数据库/切换到当前数据库
db.dropDatabase()
在数据库中插入单条文档
db.student.insert({"_id":1,"name":"灭霸","age":22})
db.student.insert({"_id":2,"name":"钢铁侠","age":25,"class_id":1})
db.student.insert({"name":"绿巨人","age":28,"class_id":1})
db.student.insertOne({"_id":1,"name":"大娃"})
插入多条文档
db.student.insert([
{"_id":5,"name":"黑寡妇"},
{"_id":4,"name":"美国队长","age":80}])
db.student.insertMany([
{"_id":2,"age":18},
{"_id":3,"age":30}])
在文档内加入数组
db.student.insert({"_id":4,"name":"马蓉","house":["北京","上海","杭州","天津"]})
在文档中嵌套文档
db.student.insert({"_id":5,"name":"思聪", "girlFriends":{"北京":"马蓉","北非":"如花"}})
批量插入文档
db.student.insert([
{"name":"大娃","age":6,"color":"red"},
{"name":"二娃","age":8,"color":"orange"},
{"name":"三娃","age":6,"color":"yellow"},
{"name":"四娃","age":8,"color":"green"},
{"name":"五娃","age":7,"color":"blue"}])
修改器介绍:
$set指定要修改的字段,如果字段不存在则添加字段,multi:true(改多条数据)
更新文档内的数据,update
//更新多条文档中的某个字段
db.student.update({"age":8},{$set:{"name":"喜痒痒"}},{multi:true})
//更新单条
db.student.update({"age":9},{$set:{"name":"美羊羊"}})
//$unset删除指定的字段
db.student.update({"age":9},{$unset:{"name":null}})
save()方法的使用
在使用时,要看看是否存在相同id的文档,如果有则覆盖相同id内的数据,没有则新增一条文档。
db.student.save({"_id":1,"age":18})
db.student.save({"_id":1,"age":20})
删除文档
//删除指定条件的文档
db.student.remove({"_id":1})
//批量删除
db.student.remove({"name":"喜羊羊","color":"green"})
//删除所有文档
db.student.remove({})