MongoDB shell

MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序。也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作。类似于SQL Server的管理工具SSMS。

可以通过以下2条命令打开shell控制台:

> cd C:\Program Files\MongoDB 2.6 Standard\bin
> mongo

如图所示:

C:\Program Files\MongoDB 2.6 Standard 是MongoDB的安装目录。

在打开shell控制台之前请确保MongoDB服务已启动,如何启动MongoDB可以参考MongoDB入门一:安装与配置

MongoDB shell基本操作

1.添加

> db.blog.insert({"title":"aaa","content":"123","date":new Date()})

添加一条数据使用insert方法,MongoDB会隐式地创建集合blog。如果添加的文档比较复杂,也可以先声明再添加,例如:

> post = {"title":"aaa",
"content":"123",
"author":"Ming Li",
"summary":"This article focuses on Asp.net MVC.",
"date":new Date()
}
> db.blog.insert(post)

2.查询

不带参数的find方法会返回集合里面所有的文档,shell只显示20条。若只是想查看一条数据可以使用findOne方法,不带参数的findOne会返回当前集合中的第一条数据。

findOne方法有一个带参数的重载,参数类型是文档,类似于find的带参数的用法。如果查询不到数据,findOne会返回null,如果查询到了多条数据,findOne会返回第一条。

> db.blog.find()
> db.blog.findOne()

如果想查询集合blog中title为"aaa"的文档,可以给find或findOne添加参数:

> db.blog.find({"title":"aaa"}) //可能会返回多条
> db.blog.findOne({"title":"aaa"}) //只返回1条,如果查询不到数据,则返回null,这多么类似于.net中的FirstOrDefault方法

MongoDB还可以进行更为复杂的查询,这里只做简单介绍。

3.修改

修改使用update方法,update是一个至少有2个参数的方法。

假如集合book下有如下文档:

{"_id":11,"item":"长安乱","publisher":"春风文艺出版社","author":"韩寒","price":20}

要修改书的价格为19可以使用下面的命令:

> db.book.update({"_id":11},{"price":19})

如果想给它增加属性呢?假如我要使价格提高10,并且增加一个stock属性,其值为5,可以使用下面的命令:

> db.book.update(
{"_id":11},
{
$.set:{stock:5},
$.inc:{price:10}
}
)

修改之后的文档:

{"_id":11,"item":"长安乱","publisher":"春风文艺出版社","author":"韩寒","price":29,"stock":5}

MongoDB还可以进行更为复杂的修改操作,这里只做简单介绍。

4.删除

remove用来从数据库中永久性地删除文档。在不使用任何参数的情况下,它会删除集合内的所有文档。它也可以接受一个文档类型的参数以限定条件。

例如下面的命令会删除blog中title为aaa的文档:

> db.blog.remove({"title":"aaa"})

shell的其他常用命令

1.查看db下的所有命令或方法

> db.help() 

2.切换到数据库test,如果test不存在会自动创建

> use test

3.删除当前连接的数据库

> db.dropDatabase() //请谨慎操作

4.查询本地所有数据库名称

> show dbs

5.查询当前数据库下的所有集合

show collections

6.查询当前集合下的文档个数

db.collection.count() //示例:db.blog.count()

7.删除某一个collection

db.collectionName.drop() //请谨慎操作

MongoDB入门三:MongoDB shell的更多相关文章

  1. MongoDB入门三步曲1--安装、基本操作

    mongodb 基本操作 目录 mongodb安装 mongod启动 mongo shell启动 mongod 停止 mongodb基本操作:CRUD 数据插入 数据查询 数据更新 数据删除 集合删除 ...

  2. MongoDB入门三步曲3--部署技术:主备、副本集和数据分片

    mongodb部署--主备.副本及数据分片 主备复制 副本集 数据分片 主备复制 主备复制是最基本的一种多点部署方案,在读写分离.热备份.数据恢复等方面具有重要作用. 在真实的生产环境,主备库肯定需要 ...

  3. MongoDB入门三步曲2--基本操作(续)--聚合、索引、游标及mapReduce

    mongodb 基本操作(续)--聚合.索引.游标及mapReduce 目录 聚合操作 MapReduce 游标 索引 聚合操作 像大多关系数据库一样,Mongodb也提供了聚合操作,这里仅列取常见到 ...

  4. MongoDB入门三

    MongoDB字段问题  增删查改操作 删除一列操作db.RiderReaTimePositon.update({},{$unset:{'CreateTime':''}},false,true)db. ...

  5. MongoDB入门教程三[数据类型]

    MongoDB的文档使用BSON(Binary JSON)来组织数据,BSON类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null.布尔.数字.字符串.数组及对象),不 ...

  6. mongodb入门教程

    title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...

  7. MongoDB入门必读(概念与实战并重)

    MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...

  8. mongoDB 入门手册

    MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储 ...

  9. MongoDB 入门之基础 DCL

    此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...

随机推荐

  1. Node.js的颠覆者:PHP的Swoole扩展

          最近2年Node.js很火,异步与协程是网络开发方面热门的话题.在追求新技术的同时,也应该反思下这里面存在的陷阱.Node.js确实是一门有趣好玩有个性的语言和技术,动态性,全异步回调的方 ...

  2. Radio Basics for RFID

    Radio Basics for RFID The following is excerpted from Chapter 3: Radio Basics for UHF RFID from the ...

  3. Oracle的FRA(Flash Recovery Area)的好处

    如果FRA的空间耗尽,只会影响到这个Oracle实例自身.所以不会耗尽所有磁盘空间从而影响到其它的数据库实例或其它应用.

  4. .NET中的流

    当应用程序需要和磁盘上的文件打交道的时候,就有了流的概念.流就像架设在应用程序所在内存和磁盘之间的一个管道. 大致思路 → 建立管道 //FileMode.Open打开现有文件,另外还有FileMod ...

  5. Explain in detail the steps/processes that occur from the moment you type a URL in a browser and hit enter

    In an extremely rough and simplified sketch, assuming the simplest possible HTTP request, no proxies ...

  6. c#复制包含子目录文件夹代码

    c#没有复制目录的代码,需要通过递归实现复制目录: 需要引用System.IO命名空间,实现代码如下: private static bool CopyDirectory(string SourceP ...

  7. [AYUI]QQ管家源码已经开源

    (0-50元 黑色字体     享受AY 1周的 ayui 技术问答) (50-100元 绿色字体 享受AY 15天的 ayui 技术问答) (100-150元 蓝色字体 享受AY 20天的 ayui ...

  8. Android定位&地图&导航——基于百度地图移动获取位置和自动定位

    一.问题描述 使用百度地图实现如图所示应用,首先自动定位当前我起始位置(小圆点位置),并跟随移动不断自动定位我的当前位置 百度Api不同版本使用会有些差异,本例中加入lib如下: 二.编写MyAppl ...

  9. 常用的sql脚本 游标遍历操作

    Declare @id int DECLARE cursor_data CURSOR FOR --这里是取得数据源 OPEN cursor_data FETCH FROM cursor_data IN ...

  10. Objective-C中将结构体与联合体封装为NSValue对象

    在Clang 3.7之前,Objective-C已经可以使用类似@100.@YES.@10.5f等字面量表示一个NSNumber对象:用类似@"xxx"的字面量表示一个NSStri ...