MongoDB是一种文档型数据库,它属于非关系型数据库。数据对象以BSON(二进制JSON)格式被存储在集合的文档中,而不是关系数据库的行和列中。mongodb
使用集合将数据编组,是一组用途相同的文档,相似表的概念,但集合不受模式的限制,在其中的文档格式能够不一样。数据库
文档表示单个实体数据,相似一条记录(行);与行的差异:行的数据是扁平的,每一列只有一个值,而文档中能够包含子文档,提供的数据模型与应用程序的会更加一致。code
若是MongoDB与关系型数据库表和数据库的对应关系以下
集合--->表
文档--->表中的行对象
// 显示数据库 > show dbs // 切换数据库(若是没有该数据库则会建立这个临时的数据库) > use abc // 显示当前使用的数据库 > db // 删除数据库 > db.dropDatabase()
// 显示全部集合 > show collections // 建立一个集合 > db.createCollection('persons') // 删除一个集合 > db.persons.drop()
在插入一个文档时,咱们可能插入一个或多个文档,因此就会有两种插入方式,分别是db.collection.insertOne()和db.collection.insertMany()固然db.collection.insertOne()能够写成db.collection.insert()。
数据插入后会自动生成一个值,而这个值至关于表中的主键。
插入实例文档
db.persons.insertOne({name:'alice',age:20})
db.persons.insertMany([{name:'bob',age:20},{name:'jack',age:21,phone:['1899445123','13244648852']}])io
因为NoSQL中是没有关联查询存在的,因此NoSQL中的查询就相对来讲容易许多。查询的复杂度就小许多。test
db.persons.find()检索全部的文档
// name 是 bob
db.persons.find({name:'bob'})
// age 大于 20
db.persons.find({age:{$gt:20}})
// age 小于30 且 name 是 bob
db.persons.find({age:{$lt:30},name:'bob')cli
更新一个文档,若是有多个符合条件的话则只替换其中的第一个。
db.collection.updateOne()
更新多个文档
db.collection.updateMany()
更新实例date
db.persons.updateOne(
{name:'alice'}, // 条件
{$set:{age:19}} // 新的数据
)二进制
删除一个文档,若是有多个文档符合条件,那么mongoDB会删除第一条匹配的数据。
db.collection.deleteOne()
删除多个文档,会将全部符合条件的文档删除。
db.collection.deleteMany()
删除实例
db.persons.deleteOne({name:'bob'}) db.persons.deleteMany([{},{}]) MongoDB在进行插入操做时,若是指定的数据库是不存在的数据库或未选择数据库,数据操做将会在test数据库中操做。