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映射图,读隔离(读关 ...
随机推荐
- Calico 的默认连通性 - 每天5分钟玩转 Docker 容器技术(69)
前面我们完成了 Calico 网络的部署并运行了容器,今天将讨论 Calico 的连通性. 测试一下 bbox1 与 bbox2 的连通性: ping 成功,数据包流向如下图所示. ① 根据 bbox ...
- Day-18: 电子邮件
---恢复内容开始--- 假设要从**@163.com发送邮件到**@sina.com,会经过下面几个过程: 首先,你得使用邮件代理软件(也就是MUA:Mail User Agent),例如Outlo ...
- idea下使用autowire注解注入对象,结果初始化不到类
如果idea下使用autowire注解注入对象,结果初始化不到类,明明使用快捷键alt+insert是可以找到该注入的对象的. 而我们在使用的时候,缺报错了??? 注意,当我们在注入对象的时候,我们留 ...
- Bootstrap Table急速完美搭建后台管理系统
Bootstrap Table是基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能:http://bo ...
- appium 原理解析
Appium是 c/s模式的appium是基于 webdriver 协议添加对移动设备自化api扩展而成的webdriver 是基于 http协议的,第一连接会建立个 session 会话,并通过 p ...
- Spring中的Service/DAO/DTO
- 7-21(排序) PAT排名汇总
计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才, ...
- Excel的实用函数
在介绍Excel函数前先说明两个概念:公式和函数. 公式:由用户自行设计对工作表进行计算和处理的计算式,以等号"="开始,其内部可以包括函数.引用.运算符和常量. 函数:即是预先定 ...
- Django内置的用户认证
认证登陆 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户输入的密码,这样一来就要自己编写大量的代码. ...
- Dynamic Inversions II 逆序数的性质 树状数组求逆序数
Dynamic Inversions II Time Limit: 6000/3000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Other ...