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映射图,读隔离(读关 ...
随机推荐
- smarty文件夹,第一个smarty实例总结
主要是libs里面的smarty类,和init.inc.php配置文件 剩下的是php文件夹.模板文件夹,临时文件夹.缓存文件夹.配置文件夹.插件文件夹 调用main文件夹中的php文件,通过 ...
- linux 编辑文件时 E45: 'readonly' option is set (add ! to override) 隐藏属性 chattr lsattr
在改一个系统当中的文件参数时, vim config.php 时,提示 E45: 'readonly' option is set (add ! to override) ,同时不能编辑不能删除不能设 ...
- linux fork两次避免僵尸进程的程序(简单)
#include<stdio.h> #include<unistd.h> int main() { pid_t pid,pid1; int status; ) { printf ...
- Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
前言 上篇Spring博文主要引出了为啥我们需要使用Spring框架,以及大致了解了Spring是分为六大模块的-.本博文主要讲解Spring的core模块! 搭建配置环境 引入jar包 本博文主要是 ...
- Cross the GreateWall方案
涉及Client端和Server端 服务端:SS搭建 注意:以Ubuntu环境为例 Step1:添加GPG Public key wget -O- http://shadowsocks.org/deb ...
- CDS测试框架介绍:如何为ABAP CDS Entities写测试
动机 现在大家都知道单元测试对我们代码的好处.并且我们都承认它是开发过程中不可或缺的一部分.但是在把代码切换到数据库的模式下的时候,我们被粗暴地打回了软件测试的黑暗年代...我们现在面临着逻辑下推到A ...
- Ubuntu16.04.1上搭建分布式的Redis集群
为什么要集群: 通常为了,提高网站的响应速度,总是把一些经常用到的数据放到内存中,而不是放到数据库中,Redis是一个很好的Cache工具,当然了还有Memcached,这里只讲Redis.在我们的电 ...
- 修改NSMutableArray中的元素时的注意事项
最近做项目遇到从文件加载数组,并对数组中的元素进行操作的问题,特意写了个Demo,记录下要注意的东西: 代码如下: NSArray *array = @["]; NSMutableArray ...
- Jest 单元测试入门
今天,我们要讲的是 Jest 单元测试的入门知识. 为何要进行单元测试? 在学习 Jest 之前,我们需要回答一个问题:为何要进行单元测试?编写单元测试可以给你带来很多好处: 将测试自动化,无需每次都 ...
- Flip Game poj 1753
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29731 Accepted: 12886 Descr ...