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映射图,读隔离(读关 ...
随机推荐
- .Net45下HttpClient的几个缺陷
前言 最近在写WebClientApi这个组件,底层使用HttpClient,发现HttpClient有许多低级的错误,使用者一不小心就可能会正常的去调用它的这些错误,得不到预期的结果.本文我把我认为 ...
- Spring第四篇【Intellij idea环境下、Struts2和Spring整合】
前言 Spring的第二和第三篇已经讲解了Spring的基本要点了[也就是Core模块]-本博文主要讲解Spring怎么与Struts2框架整合- Struts2和Spring的整合关键点: acti ...
- 【京东详情页】——原生js学习之匿名函数
一.引言 在js模块中,要给每一个功能封装一个匿名函数.为了更好的理解什么是匿名函数,为什么要用匿名函数,我做了一些查阅和学习. 二.匿名函数 什么是:在创建时,不被任何变量引用的函数. 为什么:节约 ...
- Bear and Floodlight 状态压缩DP啊
Bear and Floodlight Time Limit: 4000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u ...
- linux下快速列出文件列表的方法
前言 这两天碰到一个很棘手的问题,需要读取出ubuntu系统中某个目录下所有文件,由于服务器中存储的文件实在太多,导致此过程效率十分低下,动辄需要等待一个小时之久,还只是一个目录.于是如何快速获取文件 ...
- Python二维数据分析
一.numpy二维数组 1.声明 import numpy as np #每一个[]代表一行 ridership = np.array([ [ 0, 0, 2, 5, 0], [1478, 3877, ...
- zoj3961(区间问题)
点击打开zoj1961Let's Chat Time Limit: 1 Second Memory Limit:65536 KB ACM (ACMers' Chatting Messenge ...
- 【完美解决】2017打开MVC 4项目,cshtml页面提示‘当前上下文不存在名称model’
时间:2017/10/19 背景:领导让再之前的MVC 4老项目上新增功能,从GIT上拉取下来,使用VS2017打开之后,cshtml界面所有和Razor相关的代码均被提示‘当前上下文不存在名称XXX ...
- CSS之 z-index 属性
层叠上下文: 三维概念,表示元素在Z轴的位置 层叠可嵌套,组合成一个分层次上下文 每个层叠上下文和兄弟元素独立,进行层叠变化或渲染时,只考虑后代元素 每个层叠上下是自成体系的 层叠顺序 1 bac ...
- win10 uwp ContentDialog 点确定不关闭
微软的ContentDialog不是一直有,而是UWP新的,可以使用Content放用户控件,使用很好,但是一点不好的是,默认的一点击下面按钮就会退出. 我们有时候需要ContentDialog用户输 ...