1. 连接MongoDB:

Mongodb://username:password@hostname/dbname

2. 创建数据库:

use dbname:如果数据库不存在则创建数据库,否则切换到指定数据库。

3. 查看所有数据库:

show dbs

注:

该命令不会显示新创建的空数据库,若想显示需要向空数据库插入一些数据。

MongoDB中默认的数据库为test,若果没有创建新的数据库,集合将存放于test中。

4. 查看当前数据库名:

db

5. 删除数据库:

db.dropDatabase():删除当前数据库。

6. 插入文档:

使用use命令选择指定数据库然后再执行插入操作:

db.collection_name.insert(document):向数据库某集合插入文档,若该集合不在

该数据库中则MongoDB会自动创建该集合并插入文档。

使用示例:

>db.col.insert({title: 'MongoDB命令行操作',

description: '使用Shell命令行操作MongoDB',

by: '吴俊填',

tags: ['mongodb', 'database', 'NoSQL'],

likes: 100

})

(也可以将文档定义为一个变量然后再插入该变量)

7. 查看已插入文档:

使用use命令选择指定数据库然后再执行查询操作:

db.collection_name.find():以非结构化方式显示文档

db.collection_name.find().pretty():以结构化方式显示文档

db.collection_name.findOne():只返回一个文档(以结构化方式显示)

条件查询示例:

db.collection_name.find({‘name’:’wujuntian’})

db.col.find({"likes":{$ne:50}}).pretty()    //不等于

db.col.find({$or:[{"by":"吴俊填"},{"title": "MongoDB命令操作"}]}).pretty()     //或

db.col.find({"likes": {$gt:50}, $or: [{"by": "吴俊填"},{"title": "MongoDB命令操作"}]}).pretty()

db.col.find({likes : {$lt :200, $gt : 100}})

查询/过滤特定字段示例:

db.col.find({‘name’:’wujuntian’},{‘title’:1})     //查询title字段

db.col.find({‘name’:’wujuntian’},{‘title’:0})     //过滤title字段

8. 更新文档:

(1)update()方法:用于更新已存在的文档。

db.collection.update(

<query>,

<update>,

{

upsert: <boolean>,

multi: <boolean>,

writeConcern: <document>

}

)

参数说明:

query : update的查询条件,类似sql update查询内where后面的内容。

update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的内容。

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入新记录,true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern :可选,抛出异常的级别。

使用示例:

>db.col.update({'title':'MongoDB'},{$set:{'title':'MongoDB命令操作'}},{multi:true})

(2)save方法:通过传入的文档来替换已有文档。

db.collection.save(

<document>,

{

writeConcern: <document>

}

)

参数说明:

document : 文档数据。

writeConcern :可选,抛出异常的级别。

示例:

>db.col.save({

"_id" : ObjectId("56064f89ade2f21f36b03136"),    //替换此_id指定的文档

"title" : "MongoDB",

"description" : "MongoDB 是一个 Nosql 数据库",

"tags" : [

"mongodb",

"NoSQL"

],

"likes" : 110

})

注:

如果不指定_id,save()方法类似于inser()方法。

9. 删除文档:

db.collection.remove(

<query>,

{

justOne: <boolean>,

writeConcern: <document>

}

)

参数说明:

query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档。

writeConcern :(可选)抛出异常的级别。

示例:

>db.col.remove({'title':'MongoDB'})

>db.col.remove()     //删除所有数据

10. MongoDB $type操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

示例:db.col.find({"title" : {$type : 2}})

(获取“col”集合中title为String数据类型的数据)

11. limit():读取指定数量的数据记录。

db.COLLECTION_NAME.find().limit(NUMBER)

使用示例:

db.col.find({},{"title":1,_id:0}).limit(2)

12. skip():跳过指定数量的数据记录。

db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

使用示例:

db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

13. sort():对数据记录进行排序。

sort()可以通过参数指定排序的字段,并使用1 和-1 来指定排序的方式,其中1 为升序排列,而-1是用于降序排列。如果没有指定排序方式,默认按照文档的升序排列。

db.COLLECTION_NAME.find().sort({KEY:1})

使用示例:

db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

14. ensureIndex():创建索引。

db.COLLECTION_NAME.ensureIndex({KEY:1}) (1表示按升序创建索引,-1表示降序)

示例:

db.col.ensureIndex({"title":1,"description":-1})

注:

MongoDB中的索引是存储在B树结构中的。

15. aggregate():聚合。

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

示例:

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

类似于select by_user, count(*) from mycol group by by_user

MongoDB基本命令行操作的更多相关文章

  1. Git基本命令行操作 (转)

    Git远程操作详解   作者: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和 ...

  2. HDFS基本命令行操作及上传文件的简单API

    一.HDFS基本命令行操作: 1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元数据 ...

  3. MongoDB命令行操作

    本文专门介绍MongoDB的命令行操作.其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅. 这里用来做测试的是远端(10 ...

  4. Nginx 入门及基本命令行操作

    Nginx 介绍 Nginx 是一个高性能的 Web 服务器,从 2001 年发展至今,由于 Nginx 对硬件和操作系统内核特性的深度挖掘,使得在保持高并发的同时还能够保持高吞吐量.Nginx 还采 ...

  5. Git 基本命令行操作

    一.本地仓库操作 1.初始化    git init 2.添加版本控制文件    git add README.md3.本地提交    git commit -m “1st commit”4.配置远程 ...

  6. mysql的基本命令行操作

    mysql>CREATE DATABASE imooc; //创建数据库 mysql> USE imooc ;//选择数据库 mysql> SELECT DATABASE();//查 ...

  7. Git基本命令行操作

    A. 新建Git仓库,创建新文件夹git init  B. 添加文件到git索引git add <filename>  --- 单个文件添加git add * --- 全部文件添加 C. ...

  8. 基本命令行操作1(java编译)

    1. 设置环境变量,具体:https://www.cnblogs.com/shinge/p/5500002.html "cd + 文件名" 可进入指定文件,"cd..&q ...

  9. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

随机推荐

  1. Ajax练习题

    1.使用Ajax跳转处理页面连接数据库,完成下拉列表 首页: <body> <select id="sel">    </select> < ...

  2. Windbg调试(关于句柄表的获取,32位)

    今天利用Windbg(x86)进行了获得句柄表的调试,从中获益良多,对调试步骤和按键又一次进行了熟悉,对于句柄表页的概念更是得到了进一步的清晰认识.windbg调试和句柄表不熟悉的朋友可以借鉴我的调试 ...

  3. java进程/线程;堆和栈;多线程

    一.进程和线程 进程:在内存中运行的应用程序,一个exe是一个进程. 如:ps -exf  可以查看各个应用的进程,其中ppid为父进程: ps aux | egrep '(cron|syslog)' ...

  4. ToStringBuilder学习总结

    一.简介与引入   1.ToStringBuilder.HashCodeBuilder.EqualsBuilder.ToStringStyle.ReflectionToStringBuilder.Co ...

  5. Azure ARM (16) 基于角色的访问控制 (Role Based Access Control, RBAC) - 使用默认的Role

    <Windows Azure Platform 系列文章目录> 今天上午刚刚和客户沟通过,趁热打铁写一篇Blog. 熟悉Microsoft Azure平台的读者都知道,在老的Classic ...

  6. 框架应用:Spring framework (四) - 事务管理

    事务控制 事务是什么?事务控制? 事务这个词最早是在数据库中进行应用,讲的用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位. 事务的管理是指一个事务的开启,内容添加, ...

  7. PeopleRank

    PeopleRank:基于PageRank的理论,以每个微博账户的“关注”为链出链接,“粉丝”为链入链接的这种以人为核心的关系. PeopleRank假设条件:– 数量假设:如果一个用户节点接收到的其 ...

  8. 在http请求中的Content-Type

    声明:multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息: x-www-form-urlencoded:只能上传键值对,并且键值对都是间 ...

  9. [err] 1055

    本人mysql安装在ubuntu16.04上,mysql版本是5.7.19:在创建表和插入数据时报了 [Err] 1055 - Expression #1 of ORDER BY clause is ...

  10. 【DDD】领域驱动设计实践 —— Application层实现

    本文是DDD框架实现讲解的第二篇,主要介绍了DDD的Application层的实现,详细讲解了service.assemble的职责和实现.文末附有github地址.相比于<领域驱动设计> ...