MongoDB入门学习

一、MongoDB 简介

MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

二、Linux 下 MongoDB 的安装

  1. 解压文件
tar -zxvf mongodb-linux-x86_64-4.0.11.tgz -C /usr/local/mongodb
  1. 添加路径到环境变量中
export PATH=/usr/local/mongodb/bin:$PATH
  1. 启动mongodb
# 添加--bind_ip=0.0.0.0即可远程访问
mongod --bind_ip=0.0.0.0

三、MongoDB 命令介绍

3.1 数据库操作

创建数据库:

use DATABASE_NAME

删除数据库:

db.dropDatabase()

3.2 集合操作

① 创建集合

db.createCollection(name, options)

参数说明:

  • name:要创建的集合名称
  • options:可选参数,指定有关内存大小及索引的选项
字段类型描述
capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。
autoIndexId布尔(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size数值(可选)为固定集合指定一个最大值,以千字节计(KB)。 **如果 capped 为 true,也需要指定该字段。**w
max数值(可选)指定固定集合中包含文档的最大数量。

案例:

db.createCollection("user", 
{ capped : true, autoIndexId : true, size : 6142800, max : 10000 })

② 删除集合

db.COLLECTION_NAME.drop()

--例
db.user.drop()

3.3 插入文档

文档(document)的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。BSON是一种类似JSON的二进制式的存储格式。

db.COLLECTION_NAME.insert(document)

--例
db.mycol.insert({"name":"jack","age":18})

插入文档也可以使用 db.col.save(document)命令。如果不指定_id字段save()方法类似于 insert()方法。如果指定_id字段,则会更新该_id的数据

3.4 更新文档

MongoDB 使用update()save()方法来更新集合中的文档。

db.COLLECTION_NAME.update(<query>,<update>,{option})

--例
db.user.update({"age":33}, {"name":"rose","age":33})

参数说明:

  • queryupdate的查询条件,类似sql update查询内where后面的。
  • updateupdate的对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的
  • options:可选参数
字段描述
upsert如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multimongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern抛出异常的级别。

3.5 删除文档

db.collection.remove(<query>,<justOne>)

如果你的MongoDB是2.6版本以后的,语法格式如下:

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为true或 1,则只删除一个文档,如果不设置该参数,或使用默认值false,则删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。

3.6 查询文档

db.collection.find(query, projection)

--例
db.user.find({"name":"jack"});

--查看全部
db.collection.find()

MongoDB 与 RDBMS Where 语句比较

操作格式范例
等于{<key>:<value>}db.user.find({“age”: 33});
小于{<key>:{$lt:<value>}}db.user.find({“age”: {$lt:33}});
小于或等于{<key>:{$lte:<value>}}db.user.find({“age”: {$lte:33}});
大于{<key>:{$gt:<value>}}db.user.find({“age”: {$gt:33}});
大于或等于{<key>:{$gte:<value>}}db.user.find({“age”: {$gte:33}});
不等于{<key>:{$ne:<value>}}db.user.find({“age”: {$ne:33}});

MongoDB AND 条件

MongoDBfind() 方法可以传入多个键(key),每个键以逗号隔开。

db.col.find({key1:value1, key2:value2})

--例
db.user.find({"name":"rose","age":33});

MongoDB OR 条件

db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
)

--例
db.user.find({
	$or:
	[
		{"name":"jack"},{"age":33}
	]
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HuCheng1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值