1. MongoDB简介
简称Mongo,是一个基于分布式文件存储的NoSQL数据库系统,内部采用BSON格式作为数据存储的格式。
与传统关系型数据库不同,MongoDB采用的是文档型数据库,其数据以文档的形式储存于集合(Collection)中,而不是储存于表(Table)中。
以下是MongoDB的基本概念:
Database:数据库
Collection:集合,类似于关系型数据库中的表
Document:文档,MongoDB中的基本单元,类似于关系型数据库中的一行记录
2. MongoDB集合的操作
MongoDB中的集合(Collection)是由文档(Document)组成的,可以对集合进行增、删、改、查的操作。
2.1 创建集合
创建集合有两种方式:
在插入文档时自动创建集合。
使用createCollection()方法手动创建集合。
使用createCollection()方法创建集合的语法如下:
db.createCollection(collectionName, options)
其中,collectionName为要创建的集合的名称,options为可选参数,包括以下属性:
capped:如果为true,则创建固定大小的集合
size:为固定集合指定大小(单位:字节)
2.2 插入文档
使用insert()或save()方法向集合中插入文档,语法如下:
db.collectionName.insert(document)
db.collectionName.save(document)
其中,collectionName为集合名称,document为要插入的文档,可以是一个JSON对象或一个JSON数组。
2.3 更新文档
使用update()方法来更新集合中的文档,语法如下:
db.collectionName.update(query, update, options)
其中,collectionName为集合名称,query为查询条件,update为要更新的数据,可以使用$set操作符来进行数据的更新。
例如,要将集合中所有age大于20的记录的sex值更新为“男”,可以使用以下代码:
db.collectionName.update({age: { $gt: 20}}, {$set: {sex: "男"}}, {multi: true})
上述代码会将集合中所有age大于20的记录的sex值更新为“男”。
2.4 删除文档
使用remove()方法来删除集合中的文档,语法如下:
db.collectionName.remove(query)
其中,collectionName为集合名称,query为删除条件。
例如,要删除集合中age等于30的所有文档,可以使用以下代码:
db.collectionName.remove({age: 30})
2.5 查询文档
使用find()方法来查询集合中的文档,语法如下:
db.collectionName.find(query, projection)
其中,collectionName为集合名称,query为查询条件,projection为可选参数,表示要返回的字段。
例如,要查询年龄在20到30之间、性别为“女”的文档,可以使用以下代码:
db.collectionName.find({age: { $gte: 20, $lte: 30}, sex: "女"})
上述代码会返回年龄在20到30之间、性别为“女”的文档。
3. 总结
MongoDB是一款使用文档型数据存储方式的数据库,与关系型数据库不同,它以文档为基本单位,集合是由文档组成的。MongoDB的数据模型非常灵活,支持嵌入式文档和多值字段的存储,让数据存储更加自由、简单。