MongoDB学习(1)--安装,基本curd操作
知识点:
1-MongoDB 安装,启动和卸载
2-基本概念
3-基本的增删改查操作(CURD)
来回顾总结一把学习的mongodb,如果有javascript基础,学习"芒果DB"还是很好理解的,如果会使用mysql,那就更容易了。
mongodb是一个介于nosql数据库和mysql数据库之间的一个数据存储系统。Mongo的特点是他支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
特点:高性能、易部署、易使用,存储数据非常方便
测试环境: win10系统
一. MongoDB 安装,启动和卸载
1) 这里只做windows中的安装,比较简单容易。
Step 1: 到官网下载压缩文件并解压 。现在官网下载要注册比较麻烦,如果想快捷点,可以到mongo网址去下载
我下载的版本: mongodb-win32-x86_64-v3.4-latest.zip x86_64则不用管是32位还是64位
解压以后: 里面有一个bin目录和3个文件。我们需要的就是这个bin目录。
Step 2: 准备工作,将bin目录复制到想放置的位置。可以创建一个mongodb目录,将bin目录放入。
Step 3: 准备工作 , 创建一个存放数据的目录如data/ ,再创建一个日志文件如log.txt. (执行安装命令时就明白为什么要创建了)
我是在wamp目录下创建了mongodb目录, 和php,mysql在同级目录下。
我的目录结构大致: /mongodb/bin/ /mongodb/data/ /mongodb/log.txt
Step 4: 开始安装,在cmd中运行bin目录中的mongod.exe
mongod.exe --install --dbpath 数据目录 --logpath 日志文件
//安装 下面db和log.txt就是上面准备工作中创建的
mongod.exe --install
--dbpath D:/amp/Mongodb/data/db
--logpath D:/amp/Mongodb/data/log.txt
注: 可以直接将mongod.exe往cmd窗口拖入,这样就不用输入路径了
Step 5: 启动mongo. 在“运行”中输入 “services.msc” 打开服务窗口,找到mongo项,并启动。(或直接 右键》任务管理器》服务》打开服务)
Step 6: 测试安装是否成功
方式1: 在cmd中直接打开mongo的客户端(就像mysql黑窗口),将/bin/mongo.exe拖到cmd中,回车运行
方式2: 在浏览器中输入 localhost:27017 会看到一句英语提示
此时mongodb已经安装完成。
2) 安装出错: 无mogoDB服务项
错误描述: 按照上述步骤安装mongodb, 未出现error等错误语句,准备启动mongodb时,在服务中居然没有mongo该服务项??
原因分析: cmd直接运行的,可能需要管理员运行
最终解决:用管理员身份重新执行安装一次
二. 基本概念
(1) NoSQL : Not Only SQL ,既非关系型的数据库
(2) 文档(document) (就是记录)
i. 文档 (document) – 相当于 mysql 中的一条记录
ii. 格式 ( key / value): {“name”:”php”, “age”:100}
(3) 集合(collection) (数据表)
i. 集合 (collection) – 相当于 mysql 中的一个表
ii. 无须规定任何结构 如{ “name” : “php” }
(4) 每个文档(每条记录)都有一个 “_id”属性,唯标识一个文档 (相当于mysql中的自增的主键)
(5) Mongodb 客户端: db 该变量代表所当前连接的数据库
三. 基本的增删改查操作(CURD)
mongodb的客户端打开,其也是一个js的编译器,默认连接的是“test”数据库
增删改操作主要用到以下方法:
增操作: insert (添加文档)
查操作: find (返回所有文档) findOne (返回一个文档)
改操作: update (修改文档)
删除操作: remove (删除文档)
(1)增操作: insert (添加文档)
// 添加记录
//向集合(用户表)user中添加一条记录
var user={username:"张三",age:} //js中声明一个字面量对象一样 (字段名如username不加引号是可以的)
db.user.insert(user) //添加
db.user.find() //查询结果 -- 向集合user中添加一条日志记录
var blog = {"title":"Mongodb学习",content:"一起来玩一把mongodb","addtime":"2018-01"}
db.user.insert(blog)
db.user.find()
说明: 1-字段名(对应js中属性名字) 可以加引号也可以不加引号。不加系统会自动加上
2- 上面的代码可以直接复制到mongodb客户端直接运行(上述代码中"//"在客户端运行也是注释符)。注意,复制后点击右键自动粘贴上去
3- 每行语句末尾可以加分号回车,也可以不加直接回车,这个和js是一样的
4- 执行命令值,也可以不用声明使用变量,直接将值放到函数中也是一样的。如db.user.insert({"username":"张三","age":18})
(2)查操作: find (返回所有文档) findOne (返回一个文档)
//查询记录
db.user.findOne() //查询出第一条记录
db.user.find() //查询出所有的记录 //查询出年龄等于18岁所有记录
var user={"username":"张三","age":}; //准备添加测试数据
var user1={"username":"李四","age":};
var user2={"username":"王五","age":};
var user3={"username":"赵六","age":};
db.user.insert(user);
db.user.insert(user1);
db.user.insert(user2);
db.user.insert(user3);
db.user.find({age:})//查询出年龄等于18岁所有记录 查询出年龄等于18岁且姓名名是"赵六" 的记录
db.user.find( { age:,username:"赵六" } )
注意: 字段引号可加可不加,但是如果值是字符串有引号,则查询也必须加上
//下面2条查询是不一样的,如果记录中是整型的18 则最下面的一条是查不到记录的
db.user.find({age:})
db.user.find({age:""})
(3)改操作: 修改记录 update(where,data) , save()
update方法的第一个参数为“查找的条件”,第二个参数为“更新的值”
//修改张三年龄为80
//方式1
db.user.findOne({username:"张三"})
var u=db.user.findOne({username:"张三"})
u.age=
db.user.save(u);
db.user.findOne({username:"张三"})
//方式2
db.user.update({username:"张三"},{username:"张三",age:}) //要注意第2个{}值是最终值,如果漏了其他值,则其他未写的值会全部自动删除掉了
db.user.findOne({username:"张三"})
(4)删除操作: remove (删除文档)
//--删除记录
db.user.remove({}); //删除所有user集合中的数据
//删除age=18的记录
db.user.remove({age:}) //仅删除user集合中的age=18的记录
旧版本的remove中如果不带参数将删除所有数据,但此版本(新版)中如果不给参数会报错,给一个空值,就可以删除所有记录。删除是很危险的操作,且不可撤回,所以删除一定要谨慎
技巧提示:
1-在mongodb客户端中可以按: ctrl+l 可以清屏 (这个清空屏幕要知道,清了以后,想看前面的操作结果可就看不到了哦)
2- 输入: db.help() 会给出一些数据库级操作的帮助。如果要查看集合级的帮助则输入:db.集合名.help() 如:db.user.help()
3- 如果想像mysql一样快速在黑窗口运行,我们可以将mongo执行目录加入到环境变量中。下次运行则直接敲如: mongo 就可以运行客户端了
本来准备将php支持的配置也写下来,可以在网上编辑文档有点慢。如果能直接导入word就好了。不知道大家是如何快速编辑的。
MongoDB学习(1)--安装,基本curd操作的更多相关文章
- MongoDB的安装及CURD操作
MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据.我们选择64bit版进行下载. ...
- MongoDB安装、CURD操作、使用场景分析总结(1)
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...
- mongodb学习(三) 安装和基本CRUD
菜鸟啊...先吐槽一下自己 发现mongodb已经升级到2.6标准版了. 服务端最新安装方法: http://www.cnblogs.com/lzrabbit/p/3682510.html 一 准备 ...
- MongoDB学习比较-07 C#驱动操作MongoDB
下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...
- MongoDB学习之——安装
MongoDB安装 说明: 本次安装教程: 版本:mongoDB-3.2.4 安装环境:windows 10 ,64位操作系统 准备:安装包.Robomongo(客户端用于查看mongoDB里面的数据 ...
- MongoDB学习【四】—pymongo操作mongodb数据库
一.pymongodb的安装 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接. pip安装 pip 是一个通用的 Python 包管理工具, ...
- mongodb学习之:文档操作
在上一章中有讲到文档的插入操作是用insert的方法.如果该集合不在该数据库中,mongodb会自动创建该集合并插入文档 用find的方法可以查找所有的集合数据 > db.maple.find( ...
- mongoDB学习笔记——安装及启动
WINDOWS环境下: 一.安装 步骤一: 下载MongoDB url下载地址: http://downloads.mongodb.org/win32/ 步骤二: 设置MongoDB程序存放目 ...
- Hadoop学习-hdfs安装及其一些操作
hdfs:分布式文件系统 有目录结构,顶层目录是: /,存的是文件,把文件存入hdfs后,会把这个文件进行切块并且进行备份,切块大小和备份的数量有客户决定. 存文件的叫datanode,记录文件的切 ...
随机推荐
- Shader之性能优化
1.像素>>顶点数>>物体个数:shader中的计算应首先考虑放在script,其次vert,最后frag中 2.尽量用精度小的类型替换精度大的类型(特别是在frag中,要尽可 ...
- wxpython CustomTreeCtrl
转自 http://xoomer.virgilio.it/infinity77/Phoenix/lib.agw.customtreectrl.CustomTreeCtrl.html这个网址中有许多控件 ...
- 获取cookie信息
随着网络安全(例如:登录安全等)要求的不断提升,越来越多的登录应用在登录时添加了验证码登录,而验证码生成算法也在不断的进化,因而对含登录态的自动化测试脚本运行造成了一定程度的困扰,目前解决此种问题的方 ...
- 龙珠直播之swot
版本 v 0.3 龙珠直播有品牌优势,依托于苏宁PPTV,有大背景,有体育视频资源可用. 龙珠内容没有特色,没有特别火的亮点,定位于体育,没有免费路线,不能吸引大量活跃用户,女主播方式也没十分特点,解 ...
- BIEE入门(三)业务模型层
正如它的名字所示(Business Model and Mapping Layer),业务逻辑层需要把物理层的数据源以一种业务用户的视角来重新组织物理层的各个数据源(所谓的Mapping),同时在业务 ...
- 新发布 | Azure镜像市场正式上线
由世纪互联运营的 Azure 镜像市场于2016年9月21日正式落地中国市场,在客户和软件开发商间搭建起了一站式门户.来自全球和本地领先软件开发商并基于 Azure 的云应用.云服务和解决方案在门户中 ...
- JS 排序:冒泡、 二分搜索 /折半搜索 half-interval search
冒泡排序: 重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来. var arr = [5,0,-56,900,12]; //大的排序次数 for(var i=0; i& ...
- git 解决冲突方法
转载:http://www.cnlvzi.com/index.php/Index/article/id/119 当共享一个项目后提交冲突时 git push -f 强制推送本地的替换服务端 git f ...
- Eclipse Java常用快捷键(Eclipse Shortcut Keys for Java Top10)(转)
Eclipse Java常用快捷键(Eclipse Shortcut Keys for Java Top10) 0.背景Eclipse作为Java的OpenSource开发IDE,已经是开发人员进行J ...
- 解决Could not get lock /var/cache/apt/archives/lock
在ubuntu apt-get upgrade的时候,遇到: E: Could not get lock /var/cache/ apt/archives/lock - open (11 Resour ...