Mongodb 初识(一)
MongoDB 启动服务器
- 第一步:下载安装包
- 第二步:解压下载到的安装包,找到 bin 目录下面全部.exe 文件
- 第三步:在该目录下新建“data”文件夹,它将会作为数据存放的根文件夹。
- 第四步:打开 CMD 窗口,切换到该目录下,按照如下方式输入命令:mongod –dbpath G:MongoDBdata
- 第四步:测试是否启动,http://localhost:27017/
MongoDB 插入文档
-
db.collection_name.insert(document)
, 使用insert()
或save()
方法向集合中插入文档,如果该集合不在该数据库中,MongoDB 会自动创建该集合并插入文档。 - MongoDB 可以将数据定义为一个变量,执行插入操作:
db.col.insert(document)
,如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
MongoDB 语法
-
use database_name
命令:如果数据库不存在,则创建数据库,否则切换到指定数据库(默认为 test) -
db.dropDatabase()
命令:删除当前数据库,默认为 test -
show dbs
命令:查看所有数据库 -
db
命令:查看当前数据库名。 -
db.createCollection(name, options)
命令:创建集合- MongoDB 中并不需要创建集合。当插入一些文档 MongoDB 会自动创建集合。
db.yiibai.insert({"name" : "yiibai"})
- MongoDB 中并不需要创建集合。当插入一些文档 MongoDB 会自动创建集合。
-
show collections
命令:检查创建的集合 -
db.collection_name.drop()
命令:从数据库中删除集合。 -
db.collection_name.find()
命令:从集合查询 MongoDB 数据-
find()
将在非结构化的方式显示所有的文件。如果显示结果是格式化的,那么可以用db.collection_name.find().pretty()
除了find()
方法还有findOne()
方法,仅返回一个文档。 - MongoDB 投影,只选择需要的数据,而不是选择整个一个文档的数据。
db.collection_name.find({},{KEY:1})
-
-
db.mycol.update({key1:value1},{$set:{key2:value2}})
命令:将现有的文档中的值更新- 默认情况下,MongoDB 将只更新单一文件,更新多,需要一个参数
'multi'
设置为true
。db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}},{multi:true})
- 默认情况下,MongoDB 将只更新单一文件,更新多,需要一个参数
-
db.mycol.remove(DELLETION_CRITTERIA)
命令:用于从集合中删除文档-
db.mycol.remove()
命令:删除所有文件
-
-
RDBMS Where 子句等效于 MongoDB
- AND 条件:使用
db.mycol.find({key1:value1, key2:value2}).pretty()
命令 - OR 条件:使用
db.mycol.find({$or: [{key1: value1}, {key2:value2}]}).pretty()
,需要使用 $or 关键字 - 使用 AND 和 OR 条件: 使用
db.mycol.find({"likes": {$gt:10}, $or: [{key1:value1}, {key2:value2}] }).pretty()
命令
- AND 条件:使用
-
记录:Limit() 方法,
db.collection_name.find().limit(NUMBER),skip()
也接受数字类型参数并用于跳过文件数。db.collection_name.find().limit(NUMBER).skip(NUMBER)
-
文档排序:sort()方法,sort() 方法接受一个包含字段列表以及排序顺序的文档。要使用 1 和 - 1 指定排序顺序。1 用于升序,而 - 1 是用于降序。
db.mycol.find({},{"title":1,_id:0}).sort({"title":-1})
-
MongoDB 索引:使用
db.mycol.ensureIndex({"title":1,"description":-1})
- 索引支持查询高效率执行,索引是特殊的数据结构,存储在一个易于设置遍历形式的数据的一小部分。索引存储在索引中指定特定字段的值或一组字段,并排序字段的值。
-
MongoDB 聚合:使用
db.yibai.aggregate([{$group:{_id:"$name",num:{$sum:1}}}])
- 上述用途将等效于 sql 查询:
select name, count(*) from mycol group by name
- 上述用途将等效于 sql 查询:
- MongoDB 复制:通过使用副本集的复制来实现。副本集是一组承载同一个数据集的 mongod 实例。在副本的一个节点是接收所有的写操作主节点。所有的实例,次级,应用操作从主以便它们具有相同的数据集。副本集只能有一个主节点。
-
聚集表达式
-
$sum
:从集合累加所有文档中的定义值 -
$avg
:从集合中的所有文档计算所有给定值的平均值 -
$min
:从集合中获取的所有文件的最小的相应值 -
$max
:从集合中的所有文档中的相应值中获取最大值 -
$push
:插入数组值到文档中 -
$addToSet
:插入值所产生的数组到文档中,但不会产生重复
-