MongoDB_1
突然想去看下MongoDB的东西,于是有了这篇文章。其实很早以前就看过一些关于NoSql的文章,还记得当时里面有介绍MongoDB的,多瞅了2眼,并且在Window下安装了MongoDB的驱动,小玩了会。今天重新翻出来,没成想在命令行下竟然没有能成功连接到MongoDB。一顿Baidu后发现了问题,原来是上次非正常退出MongoDB导致的问题,照猫画虎,解决了问题:贴这里以备不时之需,
客户端连接mongodb
在client的shell里,执行mongo.exe
如何正常退出mongodb
在client的shell里,use admin,执行db.shutdownServer()即可!
创建表
db.createCollection('zylTest')
插入记录
单条记录:
db.zylTest.insert({"name":"zhoujy"})
多条记录
db.zylTest.insert([{"a":1,"b":2},{"a":2,"b":3},{"a":3,"b":4}])
插入记录将按照Json结构来定义,若多条记录的格式不相同,mongodb会自行做出处理

删除记录
单条删除:db.zylTest.remove({"name":"zhoujy"})
全部删除:db.zylTest.remove()
更新记录:
$【inc】用于int类型的列加减操作
这个部分比较麻烦:我们先来看【$inc】这个操作,【$inc】 用于int类型的key(列)加减操作,要是指定的要更新的key不存在,则会新增该key(列):以下面的操作为例:

如上图所示在之前的结构中并不包含【pv】这一列,若第一次执行下面的操作,数据库结构将发生响应的变化
db.zylTest.update({"name":"zhoujy"},{"$inc":{"pv":1}})

多次执行,列Pv的值将按输入数值相加

相关命令行:
只更新第一条出现的记录,+1
db. zylTest.update({"name":"a"},{"$inc":{"pv":1}})
更新所有符合条件的记录,+1;(第4个参数是true)
db. zylTest.update({"name":"a"},{"$inc":{"pv":1}},false,true)
要是更新条件找不到记录,默认是不执行;要是第3个参数是true,则会新增一条记录,包含完整的数据结构
db. zylTest.update({"name":"a"},{"$inc":{"pv":1}},false,true)
总之上面的查询相当于SQL中的
update zylTest set pv=pv+1 where name =' zhoujy'
$【set】用于更新指定列
$set 用于更新指定key(列),要是指定的要更新的key不存在,则会新增该key(列):
相关命令行:
只更新第一条出现的记录
db. zylTest.update({"a":1},{"$set":{"b":"A"}})
更新所有符合条件的记录(第4个参数是true),若没有符合条件的记录则不执行任何操作,当第三个参数为true的时候,若找不到符合条件的记录则会新增一条记录.
db. zylTest.update({"a ":-1},{"$set":{" b ":"A"}},false,true)
update zylTest set b=’A’ where a ='1
$【unset】 用于删除指定的列
删除第一条b为2的记录的列A
db.zylTest.update({"b":2},{"$unset":{"a":1}})
删除复合条件的记录的列A,第3个参数没有意义
db.zylTest.update({"b":"2"},{"$unset":{"a":1}},true,true)
删除所有记录的列A
db.zylTest.update({},{"$unset":{"a":1}},false,true)
其余更新操作暂时省略
查询
返回所有记录
db.zylTest.find()
条件查询
db.zylTest.find({"a":1})
db.zylTest.find({"a":1,"b":2})
In or not in
db.zylTest.find({"a":{"$in":[1,3,5,8]}})
db.zylTest.find({"a":{"$nin":[1,3,5,8]}})
Or查询
db.zylTest.find({"$or":[{"a":1},{"b":"2"}]})
db.zylTest.find({"$or":[{"a":{"$in":[1,2,3]}},{"b":"3"}]})
不等条件查询:
$lt(<);$lte(<=);$gt(>);$gte(>=);$ne(<>)
db.zylTest.find({"a":{"$gt":1,"$lte":5}})
db.zylTest.find({"a":{"$gt":1,"$lte":5,"$ne":3}})
限制查询:
db.zylTest.find({"a":{"$in":[1,3,5,8]}}).limit(1)
排序:
db.zylTest.find({"b":2}).sort({"a":-1})
匹配查询:
这块没有看明白,后面再补充吧
MongoDB_1的更多相关文章
- Hadoop 之Mong DB 之CentOS 6 使用 yum 安装MongoDB及服务器端配置
安装MongoDB的方法有很多种,可以源代码安装,在Centos也可以用yum源安装的方法.由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法.64位Centos下的安装步骤如下: 1.准 ...
- CentOS 6 使用 yum 安装MongoDB及服务器端配置
安装MongoDB的方法有很多种,可以源代码安装,在Centos也可以用yum源安装的方法.由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法.64位Centos下的安装步骤如下: 1.准 ...
- Linux CentOS 6.5 yum安装MongoDB的操作
安装MongoDB的方法有很多种,可以源代码安装,在CentOS也可以用yum源安装的方法.由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法.64位CentOS下的安装步骤如下: 1.准 ...
- MongoDB 安装,启动与基本使用
一.MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++ ...
- mtools-你可能没用过的mongodb神器
前言 接触 mongodb 已经有一段时间了,从一开始的不了解,到现在已慢慢适应这个nosql领域的佼佼者,还是经历了不少波折. 在进行数据库选型的时候,许多人总是喜欢拿 mongodb和mysql. ...
- MongDB篇,第四章:数据库知识4
MongDB 数据库知识4 GridFS 大文件存储 文件的数据库存储 1,在数据库中以 字符串的方式 存储文件在本地的路径: 优点: 节省数据库空间 缺点: 当数据库或者文件位置发生变化时则无 ...
- 在CentOS中使用 yum 安装MongoDB及服务器端配置
转自 http://blog.csdn.net/zhangfeng19880710/article/details/20166853 一.准备工作: 运行yum命令查看MongoDB的包信息 [roo ...
- user_mongo_in_a_docker_and_dump_database
使用 mongo docker 镜像 使用 mongo 镜像是很方便的,直接使用官方镜像就好了,为了今后更方便使用,这里给出依据 restheart-docker 中的 docker-compose. ...
- nosql_action
ps -aux 查当前端口占用 connecting to: test > show dbs local .078125GB testphp .203125GB > use testph ...
随机推荐
- 如何利用服务器下发的Cookie实现基于此Cookie的会话保持
Cookie是一种在客户端保持HTTP状态信息的常用技术,基于Cookie的会话保持常常出现在很多AX的部署案例中,尤其是涉及电子交易的系统部署中.此类系统往往要求负载均衡设备按照服务器下发的Cook ...
- Delphi与Java中的日期互换
在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了.通过查阅资料,发现两 ...
- Android入门-Service-start,end,bind,unbind之间的区别
写贴一段别人关于service中start与bind,end与unbind的分析了: Service创建有两种方法: startService或者bindService 服务不能自己运行,需要通过调 ...
- git cherry-pick 从其他分支检出指定的commit到当前分支
http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html Git's o ...
- Two kinds of Quaternion SlerpImp (Unity)
using UnityEngine;using System.Collections; public class SlerpImp{ static float Dot(Quaternion a, Qu ...
- 如何解决缺少OCX问题,如何在win7 64位下注册OCX
最近原来的系统很慢,重装win7. 今天跑文章格式化编辑器,结果提示找不到Comctl32.ocx. 1. 上网搜索下载Comctl32.ocx,直接拷贝到c:\windows\system32不行, ...
- 简单登陆UI设计
简单UI设计 作品效果图: 关键技术: 用到了本地化控件:SharedPreferences,简单的说就是本地配置. 四大组件:Intent 基本思路请看代码: Java代码: import ...
- 3D FPS游戏中Player摄像机的运动
最近遇到一些类似3D FPS的game play.针对这里面Player摄像机的运动的问题,随便总结一些东西以备参考.首先,对问题做一些的假设: Player摄像机在多数情况下在场景中的位置是固定的, ...
- 2013腾讯编程马拉松初赛第一场(3月21日) 湫湫系列故事——减肥记II ----线段树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4509 虽然制定了减肥食谱,但是湫湫显然克制不住吃货的本能,根本没有按照食谱行动! 于是,结果显而易见… 但 ...
- dede 如何去除[field:title/]里面出现的b标签
调用[field:title/]标签,两边加<b>怎么去掉<b> 怎么回事??? 最近更新dede的版本后,调用[field:title/]标签,生成的标题两边会自动在标题两边 ...