MongoDB的安装及CURD操作
MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据。我们选择64bit版进行下载。
下载完成之后就行安装。不再赘述。
启动MongoDB服务器
打开windows命令行,进入安装目录:
然后,使用命令 mongod –-dbpath d:\mongodb\db 启动服务器:
当服务器启动以后,我们的文件系统如下:
连接MongoDB服务器
使用命令 mongo 连接服务器:
此时连接的是我们本机的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查看当前使用的数据库
使用use命令切换数据库。MongoDB的数据库在使用前不需要创建,直接use就可以了。数据表也是这样。
基本概念
文档:文档是一组键值对,可以理解为数据行。例如:
{name:"Tom", age:12}
集合:集合是一个文档的集合,可以理解为数据表。集合存在于数据库中,且集合中的文档可以拥有不同的结构。
数据库:数据库是一个集合的物理容器,MongoDB的数据库对应到自己设定的文件系统上面。
插入操作(insert)
在插入数据的时候,我们首先要选择要插入的集合。例如要将数据插入的user集合中,那么我们可以使用如下命令:
db.user.insert({name:"Tom", age:12})
执行效果如图:
集合中的文档可以有用不同的结构,例如我们也可以把下面的文档插入到user集合中:
db.user.insert({name:"Jerry", sex:0})
批量插入:
var list = [{name:"Jack", age:13}, {name:"Lucy", age:12}];
db.user.insert(list);
执行效果如图:
查询操作
使用find进行查找:
db.user.find()
目前我们的集合中有四行数据,不带参数的时候会返回所有文档:
我们会看到文档中有一个_id字段,这是MongoDB自动生成的,用来标记文档唯一性的,我们也可以自己指定这个值。
参数查找
转自一线码农:《8天学通MongoDB》系列
日常开发中,我们玩查询,玩的最多的也就是二类:
①: >, >=, <, <=, !=, =。
②:And,OR,In,NotIn
这些操作在mongodb里面都封装好了,下面就一一介绍:
<1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面是一一对应的,举几个例子。
<2> "无关键字“, "$or", "$in","$nin" 同样我也是举几个例子
<3> 在mongodb中还有一个特殊的匹配,那就是“正则表达式”,这玩意威力很强的。
<4> 有时查询很复杂,很蛋疼,不过没关系,mongodb给我们祭出了大招,它就是$where,为什么这么说,是因为$where中的value
就是我们非常熟悉,非常热爱的js来助我们一马平川。
更新操作
使用update进行更新,更新的参数有三个,第一个是更新条件,第二个是新的文档,第三个是更新的选项,可以忽略。
例如我们要更新Tom的年龄:
db.user.update({name:"Tom"}, {name:"Tom", age:15})
执行结果如下:
注意,这种更新是完整的更新,如果不给出name的值,将会把name字段删除掉。下面的内容来自一线码农:
<1> 整体更新
不知道大家可还记得,我在上一篇使用update的时候,其实那种update是属于整体更新。
<2> 局部更新
有时候我们仅仅需要更新一个字段,而不是整体更新,那么我们该如何做呢?easy的问题,mongodb中已经给我们提供了两个
修改器: $inc 和 $set。
① $inc修改器
$inc也就是increase的缩写,学过sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在原有的基础上
自增$inc指定的值,如果“文档”中没有此key,则会创建key,下面的例子一看就懂。
② $set修改器
啥也不说了,直接上代码
<3> upsert操作
这个可是mongodb创造出来的“词”,大家还记得update方法的第一次参数是“查询条件”吗?,那么这个upsert操作就是说:如果我
没有查到,我就在数据库里面新增一条,其实这样也有好处,就是避免了我在数据库里面判断是update还是add操作,使用起来很简单
将update的第三个参数设为true即可。
<4> 批量更新
在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单
的,在update的第三个参数中,讲multi设置为true:
db.user.update({},{$inc:{age:1}},{multi:true})
删除操作
直接使用remove进行删除,如果不带参数,则会提示需要一个参数:
也就是说remove操作必须要带一个参数,例如我们要删除user中的所有数据,我们可以使用下面的命令:
db.user.remove({})
执行效果如图:
本文参考并转自一线码农:《8天学通MongoDB》系列
本文发表在 http://www.qeefee.com/article/000558
MongoDB的安装及CURD操作的更多相关文章
- MongoDB安装、CURD操作、使用场景分析总结(1)
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...
- mongodb的安装与简单操作
MongoDB中文社区:http://www.mongoing.com 数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer --->磁盘操作 1.高度事务性的场景 ...
- MongoDB的安装与python操作MongoDB
一.安装MongoDB 因为我个人使用的是windows,就只记录下windows下的安装 1.下载安装 就是官网,下载msi,选个路径安装 2.配置 看见别的地方说需要手动在bin同级目录创建dat ...
- mongodb数据库安装及常见操作
客户端和服务端的安装 # rpm -ivh mongo-10gen-2.4.6-mongodb_1.x86_64.rpm mongo-10gen-server-2.4.6-mongodb_1.x86_ ...
- mongodb的安装和sql操作
mongodb安装环境:centos6.5https://www.mongodb.org/dl/linux/x86_64wget https://fastdl.mongodb.org/linux/mo ...
- 【三】MongoDB文档的CURD操作
一.插入文档 使用insert方法插入文档到一个集合中,如果集合不存在创建集合,有以下几种方法: db.collection.insertOne({}):(v3.2 new) #插入一个文档到集合中 ...
- MongoDB学习(1)--安装,基本curd操作
知识点: 1-MongoDB 安装,启动和卸载 2-基本概念 3-基本的增删改查操作(CURD) 来回顾总结一把学习的mongodb,如果有javascript基础,学习"芒果DB" ...
- MongoDB安装、CURD增改查删操作、应用场景
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...
随机推荐
- SQL语言概述
功能概述 DDL,数据库定义语言,创建,修改,删除数据库,表,视图,索引,约束条件等 DML,数据库操纵语言,对数据库中的数据进行增,删,改,查 DCL,数据库定义语言,对数据库总数据的访问设置权限 ...
- pageEncoding与contentType属性
1图例分析 由图中可以看出,这个两个属性没有任何关系. 把这两个设置成不同的编码格式对中文显示不会产生任何影响 2.原因分析 pageEncoding规定了以什么编码方式存储和读取,使两者保持一致性, ...
- Linux运维教程
最近看马哥Linux运维,收益颇多.愿马哥,身体健康! 2013马哥全套 http://pan.baidu.com/s/1c0JQu9i 运维技术文档 http://pan.baidu.com/s/1 ...
- Spring + SpringMVC + MyBatis
1.需求说明实现用户通过数据库验证登录需求,采用Myeclipse+Tomcat 6.0+Mysql 5.0+JDK 1.6 2.数据库表开发所用是Mysql数据库,只建立单张用户表T_USER,表结 ...
- Beta版本冲刺———第七天
会议照片: 项目燃尽图: 1.项目进展: 明天就验收了,今天做的是对项目的所有功能进行复查(由郭怡锋和洪大钊负责); 对于新增的功能:排行榜和撤销一步依然没有做出来.
- iOS不得姐项目--封装状态栏指示器(UIWindow实现)
一.头文件 #import <UIKit/UIKit.h> @interface ChaosStatusBarHUD : NSObject /** 显示成功信息 */ + (void)sh ...
- 【CodeVS 3153】取石子游戏
http://codevs.cn/problem/3153/ 对于这道题,直觉告诉我每一个状态一定是必胜或必败的 然后设定操作次数t,t为取完些石子最多需要多少步. 如果\(a_i\)不为1,\(t= ...
- 【POJ 2187】Beauty Contest 凸包+旋转卡壳
xuán zhuǎn qiǎ ké模板题 是这么读吧(≖ ‿ ≖)✧ 算法挺简单:找对踵点即可,顺便更新答案. #include<cstdio> #include<cstring&g ...
- css3 操作动画要点
CSS3 有3种和动画相关的属性:transform, transition, animation. 不同点: 1. 触发条件不同.transition通常和hover等事件配合使用,由事件触发.a ...
- 编译器角度看C++复制构造函数
[C++对象模型]复制构造函数的建构操作 关于复制构造函数的简单介绍,可以看我以前写过的一篇文章C++复制控制之复制构造函数该文章中介绍了复制构造函数的定义.调用时机.也对编译器合成的复制构造函数行为 ...