MongoDB基本命令行操作
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基本命令行操作的更多相关文章
- Git基本命令行操作 (转)
Git远程操作详解 作者: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和 ...
- HDFS基本命令行操作及上传文件的简单API
一.HDFS基本命令行操作: 1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元数据 ...
- MongoDB命令行操作
本文专门介绍MongoDB的命令行操作.其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅. 这里用来做测试的是远端(10 ...
- Nginx 入门及基本命令行操作
Nginx 介绍 Nginx 是一个高性能的 Web 服务器,从 2001 年发展至今,由于 Nginx 对硬件和操作系统内核特性的深度挖掘,使得在保持高并发的同时还能够保持高吞吐量.Nginx 还采 ...
- Git 基本命令行操作
一.本地仓库操作 1.初始化 git init 2.添加版本控制文件 git add README.md3.本地提交 git commit -m “1st commit”4.配置远程 ...
- mysql的基本命令行操作
mysql>CREATE DATABASE imooc; //创建数据库 mysql> USE imooc ;//选择数据库 mysql> SELECT DATABASE();//查 ...
- Git基本命令行操作
A. 新建Git仓库,创建新文件夹git init B. 添加文件到git索引git add <filename> --- 单个文件添加git add * --- 全部文件添加 C. ...
- 基本命令行操作1(java编译)
1. 设置环境变量,具体:https://www.cnblogs.com/shinge/p/5500002.html "cd + 文件名" 可进入指定文件,"cd..&q ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
随机推荐
- Eclipse rap 富客户端开发总结(14) :rap 图片、数据缓存处理
一.概述 在进行了 rap 的基本学习之后,您对 rap 的理解是否进入了更高的一个层次呢,个人觉得,对学习 rap 的人来说,进行 rap 的学习是一个探索的过程,在编程中不断的对其进行理解和分析, ...
- Hello PyQt5
在 ubuntu 系统上 GUI 编程,PyQt5 是个不错的选择.首先,当然是安装 PyQt5 了.终端输入命令: pip3 install PyQt5 即可. 1. 建立一目录 x01.PyQtH ...
- MongDB开启权限认证
在生产环境中MongoDB已经使用有一段时间了,但对于MongoDB的数据存储一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),最近在酷壳网看了一篇技术文章(https://cools ...
- AngularJS--控制器(Controller)
点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ 理解控制器 在AngularJS的控制器中,构造函数会有Scope参数. 当一个控制器通 ...
- NodeJS中的事件
/** * Created by xiwu.xxw on 2015/7/22. */ /** * EventEmitter 的每个事件由一个事件名和若干个参数组成, * 事件名是一个字符串,通常表达一 ...
- 【专章】dp入门
动态规划(简称dp),可以说是各种程序设计中遇到的第一个坎吧,这篇博文是我对dp的一点点理解,希望可以帮助更多人dp入门. ***实践是检验真理的唯一标准,看再多文章不如自己动手做几道!!!*** 先 ...
- http://codeforces.com/contest/612/problem/D
D. The Union of k-Segments time limit per test 4 seconds memory limit per test 256 megabytes input s ...
- eclipse的插件开发-启动时间
今天晚上看<深入理解java虚拟机>时,作者在书中有一段,eclipse优化的章节,其中涉及到了eclipse启动时间检测的插件开发 于是翻了翻资料,也开发了一个自己的插件 如图是开发后启 ...
- C#仪器数据文件解析-Excel文件(xls、xlsx)
不少仪器工作站可以将数据导出为Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件. 采集Excel文件相比采集pdf文件更容易.程序更健壮,毕竟Excel中数据有明确的行.列 ...
- GPUImage库的使用
GPUImage开源项目地址:https://github.com/BradLarson/GPUImage GPUImage使用说明:https://github.com/BradLarson/GPU ...