MongoDB自学日记1——基本操作
作为一个做底层及后台研发的,最近对NoSQL却产生了浓厚的兴趣,加入了一个DBA群,据说北京排的上号的DBA都在里面,然而里面基本都是Oracle系的,MySQL和MongoDB系的少之又少。学习靠不得别人,要和Oracle大佬们撕比尚需时日。
废话少说,在抱怨关系型数据库的死板及开发效率,力推NoSQL之后,NoSQL的代表之一MongoDB也受过一些质疑,比如《Don't use mongoDB》一文。然而NoSQL的应用却还是没有停下,比如滴滴就是NoSQL。在去IOE的大趋势下,阿里选的是MySQL,大部分公司基本也选的是MySQL(MySQL比MongoDB早)。大公司肯定不太愿意,或者主动向新的数据库迁移,因为代价太大,而且也由于公司及数据规模也必然趋于保守选择(最近Oracle的盛会上看到刚发布的sharding特性,然而一般NoSQL早就支持了)。
为什么要向MongoDB迁移,以及迁移会有带来什么问题恐怕只有亲身做过的大牛才能回答。一般的说法是因为NoSQL更适合于集群,大多数NoSQL的研发动机都是为了适应集群,NoSQL不像关系型数据库那样死板,比较轻量级。
1.基本操作
创建数据库并插入,MongDB是文档型NoSQL数据库,集合相当于关系型数据库中的表,文档相当于一行数据。语法与JavaScript类似。下面是一些基本的增删改查操作。
|
创建数据库 >Use myfirstdb 创建集合 >db.createCollections(“Company”); 插入一条数据 >db.Company.insert({uid:1, username: “Tom”, age: 25}); >WriteResult({ "nInserted" : 1 }) |
查询记录:
|
查询整个集合中的记录 >db.Company.find(); 查询指定字段的记录 >db.Company.find({username: “Jerry”}); |
修改记录:
|
>db.Company.update({username: “Truman”}, {$set: {age : 50}}); |
删除记录:
|
>db.Company.remove({uid: 1}); |
2. Problems
在Windows下尝试搭建一个学习实验环境碰到的问题。
1.服务无法启动的问题
采用源码包可能存在问题,所以直接使用安装程序,即.msi文件。学习MongoDB解决的第一个问题就是如何启动MongoDB服务并进入数据库。MongoDB安装完成后启动:
|
$net start mongdb |
这时可能会报无法启动服务的错误。Windows下可以先打开任务管理器,查看服务中是否已经有了MongoDB,如果有则可以先卸载MongoDB,之后重新安装,再net start mongodb,若输出MongoDB服务已经启动,则执行mongo.exe即可进入数据库命令行。
2.服务无法启动
从控制面板中无法启动服务,报错,网上说的都不靠谱。
|
015-10-29T20:14:48.328+0800 W NETWORK Failed to connect to 127.0.0.1:27017, reason: errno:10061 由于目标机器积极拒绝,无法连接。 |
卸载mongodb服务并重装后问题解决,然而这显然不行,必须以热方式解决。后来发现mongodb安装数据目录下会有一个.lock文件,删除文件以后重启服务就可以启动了,但为什么会这样还需要研究。Net start mongodb重启服务。
以上纯属个人浅见,初学欢迎探讨指正~
MongoDB自学日记1——基本操作的更多相关文章
- MongoDB自学日记3——架构及HA
在对mongoDB的操作有了一定基础后,终于可以扯扯HA和架构这两个高大上的概念了.在这之前当然还得弄清楚mongoDB的Key feature:Sharding. 1. Sharding Shard ...
- MongoDB自学日记2——权限
首先应该明确的是为什么要学MongoDB.OK,如果是仅仅出于对于流行技术的原始兴趣,可能并不能深入学习,还必须有应用需求.刚开始学习MongoDB,因为以前对其它数据库的了解也不是特别深入,所以许多 ...
- MongoDB的ObjectId和基本操作增删改查(3)
ObjectId 基本操作增删改查 增: insert 介绍: mongodb存储的是文档,. 文档是json格式的对象. 语法: db.collectionName.insert(document) ...
- MongoDB的安装和基本操作
一.使用前的准备(windows下的安装) 1.下载 目前MongoDB的官网不知道问什么不能进行下载了,但是可以在MongoDB中文论坛进行下载, 地址如下:http://www.mongoing ...
- MongoDB文档的基本操作
1. MongoDB的安装方法 (1)下载MongoDB 相应的版本: (2)设置数据文件和日志文件的存放目录: (3)启动MongoDB服务: (4)将MongoDB作为服务启动. 2. Mongo ...
- 学习MongoDB 七: MongoDB索引(索引基本操作)(一)
一.简介 在MongoDB建立索引能提高查询效率,只需要扫描索引只存储的这个集合的一小部分,并只把这小部分加载到内存中,效率大大的提高,如果没有建立索引,在查询时,MongoDB必须执行全表扫描,在数 ...
- MongoDB 安装和即基本操作
http://www.mongodb.org/ Agile and Scalable MongoDB (from "humongous") is an open-source do ...
- MongoDB自学笔记2---1.2 初识MongoDB
1.2.1MongoDB简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之 ...
- MongoDB自学笔记1----1.1 NoSQL是什么?
第一章 走进MongoDB 1.1NoSQL是什么? 1.1.1NoSQL简介 对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL.但是这种理解是错误的, ...
随机推荐
- 入坑cordova
原文:入坑cordova 因项目需要入坑cordova,奔跑吧骚年,目前只是要求安卓平台,下面都是以安卓为例 最好的学习资料还是官网. https://cordova.apache.org/ http ...
- C/C++ 常量的定义与应用(编程中的常量)
常量一般定义为全局变量,且大写: 1. 字符串常量 const string EXPAND_X = "X+YF"; const string EXPAND_Y = "FX ...
- 升级cocoapods 0.36.0之后,解决更新的部分依赖库,不是最新版本号的问题
在升级到cocoapods 0.36.0之后,使用原本podfile配置,在又一次运行pod install之后,一些依赖库的版本号,低于github上的最新版本号.可依照下列配置.指定git,强制使 ...
- C# WPF 左侧菜单右侧内容布局效果实现
原文:C# WPF 左侧菜单右侧内容布局效果实现 我们要做的效果是这样的,左侧是可折叠的菜单栏,右侧是内容区域,点击左侧的菜单项右侧内容区域则相应地切换. wpf实现的话,我的办法是用一个tabcon ...
- C++:怎样把一个int转成4个字节?
大家都知道,一个int 或 unsigned int是由4个字节组成的,(<C/C++学习指南>,第3章,第3.2.3节:变量的内存视图) 比如, int n = sizeof( ...
- 构建自己的PHP框架(视图装载)
完整项目地址:https://github.com/Evai/Aier 视图装载类要做的工作其实很简单: 1. 根据视图名称找到视图文件,支持文件夹 2. 更加方便,更加优雅地把变量的值传递进视图 本 ...
- WPF 设置类库项目为启动项,设置窗体跟随。
原文:WPF 设置类库项目为启动项,设置窗体跟随. 1.添加用于启动的类Program.cs,需要一个静态的Main函数入口. using System; using System.Windows; ...
- 不得不说,我太佩服node了,连openXML也搞定了!
https://github.com/Ziv-Barber/officegen 开源项目地址 使用报告等有空完成!
- XF 标签页面
using System; using Xamarin.Forms; using Xamarin.Forms.Xaml; [assembly: XamlCompilation (XamlCompila ...
- js div的显示和隐藏
<head> <title></title> <style type="text/css"> div ...