1.创建并使用test数据库

use test;

此时使用show dbs;命令查看当前存在的数据库是查看不到test数据库的,只有当test中insert数据之后才能查看到test数据库

删除数据库
1.先使用 use test进入到test的数据库
2.执行db.dropDatabase();删除数据库 删除集合
db.collection.drop();
例如:db.test.drop(); 可以不用进入到test的数据库就可以直接删除

2.查看test数据库中的集合

show collections

3.创建文档命令

db.<collection>.insertOne(
<document>,
{
writeConcern: <document>
}
) <collection> 要替换成文档将要写入的集合的名字
<document> 要替换成将要写入的文档本身
writeConcern 定义了本次文档创建操作的安全写级别。
安全写级别用来判断一次数据库写入操作是否成功,安全写级别越高,丢失数据的风险就越低,然而写入操作的延迟也就可能更高。
如果不提供writeConcern文档,mongoDB使用默认的安全写级别 例如将一下文档写入数据库
{
  _id: "account1",
  name: "alice",
  balance: 100
} 写入命令为:

db.accounts.insertOne(
{
  _id:"account1",
 name:"alice",
  balance:100
 }
)

返回结果为:

{ "acknowledged" : true, "insertedId" : "account1" }

"acknowledged" : true 表示安全写级别被启用

由于我们在db.collection.insertOne()命令中并没有提供 writeConcern 文档,这里显示的是MongoDB默认的安全级写级别启用状态

"insertedId"显示了被写入的文档的_id

或者

db.accounts.insert({"name":"谋知"})

4.查看已插入的文档

.创建数据库
user mongo; .插入文档
db.mongo.insert({"name":"谋知"}) .查询插入的数据
db.mongo.find(); 将数据定义为变量插入
document=({"sex":"男"})
db.mongo.insert(document)

5.更新文档

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的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。 例如:
db.mongo.updata({"name":"谋知"},$set:{"name":"谋知1"})
以上命令只会修改第一条发现的文档,如果需要修改多条相同的文档,这需要设置multi参数
db.mongo.updata({"name":"谋知"},$set:{"name":"谋知1"}).{multi:true}

  

save() 方法通过传入的文档来替换已有文档。语法格式如下:
db.collection.save(
<document>,
{
writeConcern: <document>
}
) 参数说明:
document : 文档数据。
writeConcern :可选,抛出异常的级别。 例如:
先使用save方法新增一个id为100的数据
db.mongo.save({"_id":"100", "name":"谋知"})
然后修改这条数据的name为谋知0
db.mongo.save({"_id":"100", "name":"谋知0"}) 最后通过 db.mongo.find() 查看修改结果

6.删除文档

remove() 方法的基本语法格式如下所示:
db.collection.remove(
<query>,
<justOne>
) 如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
writeConcern :(可选)抛出异常的级别。 例如:
先执行以下命令2次插入2条数据
db.mongo.insert({"name":"谋知"}) 接下来删除name 为 “谋知” 的文档
db.mongo.remove({"name":"谋知"})
此时两条记录都被删除掉了,如果只想删除第一条则设置justOne为true或者1 执行如下命令
db.mongo.remove({"name":"谋知"},{justOne:true})

  

7.mongo查询文档

MongoDB 查询数据的语法格式如下:
db.COLLECTION_NAME.find()
find() 方法以非结构化的方式来显示所有文档 如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
db.COLLECTION_NAME.find().pretty() 如果只查询第一条数据可以使用findOne() 例如
查询name是“谋知”的
db.mongo.find({"name":"谋知"})
查询所有数据
db.mongo.find()
db.mongo.find().pretty()
查询第一条数据
db.mongo.findOne() MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,及常规 SQL 的 AND 条件。 语法格式如下:
db.mongo.find({key1:value1, key2:value2}).pretty() 例如: db.mongo.find({"name":"谋知","_id":"100"})
MongoDB OR 条件语句使用了关键字 $or,语法格式如下:
db.mongo.find({$or:[{key1: value1},{key2: value2}]}).pretty() 例如:
db.mongo.find($or:[{"name":"谋知"},{"_id":"100"}]).pretty() and和or联合使用 例如:
db.mongo.find({"name":"谋知"},$or:[{"sex":"男"},{"_id":"100"}]).pretty()

  

MongoDB与RDBMS Where 语句的比较

8.mongodb中的操作符

(>) 大于 - $gt
(<) 小于 - $lt
(>=) 大于等于 - $gte
(<= ) 小于等于 - $lte $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
例如查询name为String类型的数据
db.mongo.find({"name": {$type:2}})
此处的2表示string类型的数据,如下是类型和type值得对应关系

数据类型和type值得对应关系

9.mongodb limit() 与 skip() 方法

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
limit() 方法基本语法:
db.COLLECTION_NAME.find().limit(NUMBER) 例如:
db.mongo.find().limit(2) 我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
skip() 方法基本语法:
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER) 例如:
db.mongo.find().limit(1).skip(1)

 

10.mongodb sort() 方法

在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。
sort()方法基本语法如下所示:
db.COLLECTION_NAME.find().sort({KEY:1}) 例如:
db.mongo.find().sort({"name":1})

  

Mongo Shell CRUD操作的更多相关文章

  1. MongoDB3.4 shell CRUD操作

    输入db,显示你正在操作的数据库:切换数据库,输入use dbName,如果数据库不存在的话会自动帮我们创建一个:使用show dbs可以显示所有可用的数据库. 测试数据在文末 插入文档 插入操作的行 ...

  2. MongoDB - MongoDB CRUD Operations, Query Documents, Iterate a Cursor in the mongo Shell

    The db.collection.find() method returns a cursor. To access the documents, you need to iterate the c ...

  3. MongoDB基本增删改查操作-mongo shell

    基础 1.查看所有数据库: show dbs 2.选择数据库: use test 3.查看数据库中有哪些集合: show collections 如下图: 查询 1.查看集合中有哪些数据,其中abc为 ...

  4. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  5. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  6. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  7. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  8. MongoDB的CRUD操作

    1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...

  9. Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作

    2 Mongodb CRUD 操作 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mong ...

随机推荐

  1. signal之——异步回收机制2

    前言:上一篇的处理方法可以解决所有回收问题,但是如果我们不考虑子进程的返回状态,那么可以使内核来进行对子进程的回收 代码如下: //如果无需关心进程结束状态 可以设置子进程结束时不产生僵尸进程有内核值 ...

  2. 网站爬取-案例四:知乎抓取(COOKIE登录抓取个人中心)(第二卷)

    接着上卷来分析,作为开发人员我们都知道,登录是一个想指定URL发送POST请求的过程,所以我们需要找到请求的URL,以及字段,先用一个错误账号和密码做一下尝试,如果是正确的话会直接跳转到别的页面,这样 ...

  3. SMTP错误码/建议解决方法

    SMTP错误码/建议解决方法 错误总表 420 1. Timeout Communication Problem Encountered During Transmission. Thie Is a ...

  4. Part-Linux-2

    1.cgi #1.创建cgi-bin目录#2.创建hi.json -> {"hi":"hello"}#3.python2 -m CGIHTTPServer ...

  5. CAS 5.3.x 相关信息

    CAS 5.3.x 相关信息 单点登录系统 学习网站: https://www.apereo.org/projects/cas 官方网站 https://github.com/apereo/cas-o ...

  6. 收集到的技术相关网址——delphi

    1.DLL封装登录框架实现代码复用 https://www.cnblogs.com/wenwencao/articles/1333659.html

  7. MOOC(6)- case之间存在依赖

    方法1:这里只给出根据依赖字段去匹配响应结果中的值的函数,其他匹配依赖case,对依赖case发起请求见下面的方法2 方法2: from day_20200208_mooc.tools.do_exce ...

  8. 吴裕雄--天生自然Android开发学习:1.2.1 使用Eclipse + ADT + SDK开发Android APP

    1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本 ...

  9. js如何把a标签里面的值传递到函数里面

    ----------------------a标签如何定 如何传参到函数---------------------- 1.<a></a>标签 如何传参到函数 <a cla ...

  10. 将js进行到底:node学习8

    Node.js数据库篇--MongoDB 废话:现代web开发可以说完全是数据库驱动的,而对于我这样的PHP程序员来说,对Mysql向来十分钟情,MongoDB的兴起让我不能再对Mysql孤注一掷,& ...