MongoDB的安装及CURD操作

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据。我们选择64bit版进行下载。

下载完成之后就行安装。不再赘述。

 

启动MongoDB服务器

打开windows命令行,进入安装目录:

image

然后,使用命令 mongod –-dbpath d:\mongodb\db 启动服务器:

image

当服务器启动以后,我们的文件系统如下:

image

连接MongoDB服务器

使用命令 mongo 连接服务器:

image

此时连接的是我们本机的MongoDB,可以看到当前MongoDB的版本号,以及连接的数据库名称。

指定远程服务器:

mongo 192.168.1.200

指定远程服务器、端口号:

mongo 192.168.1.200:27017

指定远程服务器、端口号、数据库:

mongo 192.168.1.200:27017/mydb

指定远程服务器、端口号、数据库、用户名、密码(未测试):

mongo 192.168.1.200:27017/mydb –u user –p password

在连接服务器之后,我们就可以进行CURD操作了。

数据库信息

使用命令db查看当前使用的数据库

image

使用use命令切换数据库。MongoDB的数据库在使用前不需要创建,直接use就可以了。数据表也是这样。

image

基本概念

文档:文档是一组键值对,可以理解为数据行。例如:

{name:"Tom", age:12}

集合:集合是一个文档的集合,可以理解为数据表。集合存在于数据库中,且集合中的文档可以拥有不同的结构。

数据库:数据库是一个集合的物理容器,MongoDB的数据库对应到自己设定的文件系统上面。

 

插入操作(insert)

在插入数据的时候,我们首先要选择要插入的集合。例如要将数据插入的user集合中,那么我们可以使用如下命令:

db.user.insert({name:"Tom", age:12})

执行效果如图:

image

集合中的文档可以有用不同的结构,例如我们也可以把下面的文档插入到user集合中:

db.user.insert({name:"Jerry", sex:0})

批量插入:

var list = [{name:"Jack", age:13}, {name:"Lucy", age:12}]; 
db.user.insert(list);

执行效果如图:

image

查询操作

使用find进行查找:

db.user.find()

目前我们的集合中有四行数据,不带参数的时候会返回所有文档:

image

我们会看到文档中有一个_id字段,这是MongoDB自动生成的,用来标记文档唯一性的,我们也可以自己指定这个值。

参数查找

转自一线码农:《8天学通MongoDB》系列

日常开发中,我们玩查询,玩的最多的也就是二类:

     ①: >, >=, <, <=, !=, =。

     ②:And,OR,In,NotIn

这些操作在mongodb里面都封装好了,下面就一一介绍:

    <1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面是一一对应的,举几个例子。

12cff53n

<2> "无关键字“, "$or", "$in","$nin" 同样我也是举几个例子

weodpedk

<3> 在mongodb中还有一个特殊的匹配,那就是“正则表达式”,这玩意威力很强的。

fakzl5tr

<4> 有时查询很复杂,很蛋疼,不过没关系,mongodb给我们祭出了大招,它就是$where,为什么这么说,是因为$where中的value

  就是我们非常熟悉,非常热爱的js来助我们一马平川。

5t11qtdt

更新操作

使用update进行更新,更新的参数有三个,第一个是更新条件,第二个是新的文档,第三个是更新的选项,可以忽略。

例如我们要更新Tom的年龄:

db.user.update({name:"Tom"}, {name:"Tom", age:15})

执行结果如下:

image

注意,这种更新是完整的更新,如果不给出name的值,将会把name字段删除掉。下面的内容来自一线码农:

<1> 整体更新

         不知道大家可还记得,我在上一篇使用update的时候,其实那种update是属于整体更新。

sg3s3btv

<2> 局部更新

        有时候我们仅仅需要更新一个字段,而不是整体更新,那么我们该如何做呢?easy的问题,mongodb中已经给我们提供了两个

   修改器: $inc 和 $set。

①  $inc修改器

       $inc也就是increase的缩写,学过sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在原有的基础上

    自增$inc指定的值,如果“文档”中没有此key,则会创建key,下面的例子一看就懂。

psaliv1x

② $set修改器

      啥也不说了,直接上代码

s2h42pvv

<3> upsert操作

     这个可是mongodb创造出来的“词”,大家还记得update方法的第一次参数是“查询条件”吗?,那么这个upsert操作就是说:如果我

没有查到,我就在数据库里面新增一条,其实这样也有好处,就是避免了我在数据库里面判断是update还是add操作,使用起来很简单

将update的第三个参数设为true即可。

dfo0zmrd

<4> 批量更新

     在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单

的,在update的第三个参数中,讲multi设置为true:

db.user.update({},{$inc:{age:1}},{multi:true})

删除操作

直接使用remove进行删除,如果不带参数,则会提示需要一个参数:

image

也就是说remove操作必须要带一个参数,例如我们要删除user中的所有数据,我们可以使用下面的命令:

db.user.remove({})

执行效果如图:

image

 

本文参考并转自一线码农:《8天学通MongoDB》系列




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/p/4892282.html,如需转载请自行联系原作者

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
29天前
|
NoSQL Linux MongoDB
linux麒麟系统安装mongodb7.0
linux麒麟系统安装mongodb7.0
66 10
|
8天前
|
NoSQL 网络协议 MongoDB
docker安装mongodb(单点)图文详解
该文档提供了一个快速搭建MongoDB环境的指南,适用于开发和学习,但不适用于生产。主要步骤包括:1) 使用Docker创建数据卷`mongo_data_db`和`mongo_data_configdb`。2) 拉取`mongo`镜像并运行名为`mymongo`的容器,映射端口并挂载数据卷。3) 初始化管理员账号,创建具有`root`权限的用户`admin`,密码为`adminpwd`。4) 防火墙开放端口27017。最后,提到了使用第三方客户端进行连接。
|
10天前
|
弹性计算 NoSQL Shell
一键安装 MongoDB 数据库脚本
【4月更文挑战第29天】
16 4
|
10天前
|
NoSQL MongoDB
MongoDB代码操作
MongoDB代码操作
|
11天前
|
NoSQL Linux 网络安全
【专栏】如何在 RHEL 8 或者 CentOS 8 上安装 MongoDB?
【4月更文挑战第28天】本文档介绍了如何在RHEL或CentOS 8上安装MongoDB,包括环境准备(系统更新、依赖安装、硬件需求和sudo用户)、导入MongoDB GPG公钥、创建Yum仓库、安装MongoDB社区版,以及后续的基本配置和验证(启动服务、防火墙设置和连接验证)。通过这些步骤,用户可以顺利安装并运行MongoDB,以处理非结构化数据和扩展技术栈。
|
16天前
|
存储 分布式计算 NoSQL
MongoDB的简介和安装(在服务器上)
MongoDB的简介和安装(在服务器上)
29 0
|
20天前
|
NoSQL MongoDB 数据库
MongoDB黑窗口操作(CRUD)
MongoDB黑窗口操作(CRUD)
|
27天前
|
存储 NoSQL Linux
CentOS7安装MongoDB
CentOS7安装MongoDB
18 0
|
1月前
|
缓存 NoSQL 关系型数据库
【MongoDB】MongoDB更新操作时是否立刻fsync到磁盘?
【4月更文挑战第2天】【MongoDB】MongoDB更新操作时是否立刻fsync到磁盘?
|
1月前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。