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. 201521123108 《Java程序设计》第13周学习总结

    1. 本周学习总结 2. 书面作业 Q1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 答: 回复 ...

  2. headfirst设计模式(3)—装饰者模式

    序 好久没写设计模式了,自从写了两篇之后,就放弃治疗了,主要还是工作太忙了啊(借口,都是借口),过完年以后一直填坑,填了好几个月,总算是稳定下来了,可以打打酱油了. 为什么又重新开始写设计模式呢?学习 ...

  3. [04] Object类

    1.基本概念 Object类是所有类的父类,位于java.lang包中.任何类的对象,都可以调用Object类中的方法,包括数组对象. 2.常用方法 2.1 toString toString可以将任 ...

  4. Struts2第十一篇【简单UI标签、数据回显】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签-也就是显示页面的标签-.. 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再被浏览器 ...

  5. pig hive hbase比较

    Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...

  6. 如何快速成长?我的java之路!

    由于一些外部的原因,我不得不从自己熟悉的php领域,转战到java战场.我个人觉得还是有些心得吧,不管怎么样,或多或少可能都会有那么些经历的人,和你一起走在这世上!尽管你不知道TA是谁. 其实,转换一 ...

  7. Java平台与.Net平台在服务器端前景预测

    如果是服务器端, 毫无疑问C#是很难跟Java拼的. 就算将来,微软逆袭的机会也很渺茫了.就技术的先进性来说, Java平台是不如.Net平台, 但是, 程序员对于两个平台,直接接触的基本以语言为主, ...

  8. JavaScript面向对象(三)——继承与闭包、JS实现继承的三种方式

      前  言 JRedu 在之前的两篇博客中,我们详细探讨了JavaScript OOP中的各种知识点(JS OOP基础与JS 中This指向详解 . 成员属性.静态属性.原型属性与JS原型链).今天 ...

  9. .NetCore之下载文件

    本篇将和大家分享的丝.NetCore下载文件,常见的下载有两种:A标签直接指向下载文件地址和post或get请求后台输出文件流的方式,本篇也将围绕这两种来分享:如果对您有好的帮助,请多多支持. 允许站 ...

  10. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...