其实一直想整理下我常使用的MongoDB数据库的一些操作命令,终于有时间了~

MongoDB是一种开源的,免费的非关系型数据库(NoSql),不存在表、记录等概念,与通常的关系型数据库有些差异:

  • MongoDB里的集合可类比成关系数据库中的表,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。集合存储在数据库中。
  • MongoDB里的文档可类比成关系型数据库中表中的字段,文档主要存储在集合中,mongodb将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

以下是一些常用命令

一、数据库

1、查看所有数据库:show dbs            

2、切换数据库:use  DATABASE_NAME         # 如果数据库不存在,则创建数据库

3、删除数据库:db.dropDatebase()                

二、集合

1、查看所有的集合:show collections 或者show tables         

2、创建mongotest集合:

  a、   db.creatCollection("mongotest")           # 创建集合

      b、   db.mycollections.insert({"name":"嗯哼~"})             # 在MongoDB中,当你插入一些文档时,MongoDB会自动创建集合

三、文档

1、插入文档:db.mycollections.insert()  或者 db.mymycollections.save()          

如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

例:

2、查找文档:db.mycollections.find()  

db.mycollections.find().pretty()       # 查找全部文档,按格式输出

db.mycollections.findOne()             # findOne是按照_id正序排列,没有查询条件,查找第一个被插入的数据

 例:       

其他相关查询条件语法如下:

  • 小于:语法为 {<key>:{$lt:<value>}},例 :db.mycollections.find({"age":{$lt:19}})
  • 小于或等于:{<key>:{$lte:<value>}},例 :db.mycollections.find({"age":{$lte:19}})
  • 大于:{<key>:{$gt:<value>}},例 :db.mycollections.find({"age":{$gt:19}})
  • 大于等于:{<key>:{$gte:<value>}},例 :db.mycollections.find({"age":{$gte:19}})
  • 不等于:{<key>:{$ne:<value>}} ,例 :db.mycollections.find({"age":{$ne:18}})

3、更新命令:db.mycollections.update()         

例:将上面王红年龄从18岁改为19岁,操作命令为:db.mycollections.update({"name" : "王红"},{$set:{"age":"19"}})

 
 
4、删除文档:db.mycollections.remove()          
例:
1、删除“张三”,操作命令为:db.mycollections.remove({"name":"张三"})  
2、插入多个姓名为“张三”的人,删除找到的第1条“张三”,操作命令为:db.mycollections.remove({"name":"张三"},1)      #  1,justOne参数

3、插入多个姓名为“张三”的人,删除找到的前2条“张三”,操作命令为:

    db.mycollections.remove({"_id" : {$in: [ObjectId("5b86b20c873007ee4d98c1e6"), ObjectId("5b86b20e873007ee4d98c1e7")]}})

四、其他命令

1、查询过滤

  db.mycollections.find({"name":"张三"},{"age":1,_id:0})       #  1表示显示name,0表示不显示_id.

2、limit()

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

db.mycollectons.find().limit(2)          # 只显示2个文档

3、skip()

  除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
  db.mycollections.find({},{"name":1,_id:0}).limit(1).skip(1)     # 只显示第二个文档
 
4、sort()
  MongoDB使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。
  db.mycollections.find().sort({age:1})                    # 文档按照age,升序排列




最新文章

  1. Objective-C中的深拷贝和浅拷贝
  2. Spring学习笔记 6. 尚硅谷_佟刚_Spring_Bean 之间的关系
  3. jQuery全局函数
  4. Smallest Bounding Rectangle - uva10173
  5. iOS - Git 代码版本管理
  6. window环境下glog的安装
  7. mac下编译optool方法
  8. mysql数据库问答
  9. (转载)PHP使用header函数设置HTTP头的示例方法表头
  10. ACM-简单题之Least Common Multiple——hdu1019
  11. TRIZ系列-创新原理-22-变害为利原理
  12. How to Add Columns to a DataGrid through Binding and Map Its Cell Values
  13. POJ 1021 2D-Nim
  14. webpack2 配置 示例
  15. 自然语言处理NLP快速入门
  16. delphi WebBrowser IPv6
  17. java感想
  18. 【LOJ】#2512. 「BJOI2018」链上二次求和
  19. November 30th 2016 Week 49th Wednesday
  20. (1)风色从零单排《C++ Primer》 一个简单的c++程序

热门文章

  1. robot framework---校验新增条数功能
  2. webpack 4.X 基础编译
  3. mysql分库 分页查询
  4. Keras + LSTM 做回归demo 2
  5. pycharm安装配置
  6. 分布式消息通信Kafka-原理分析
  7. IE低版本 JSON.parse 和stringify 的兼容 (IE8以下)
  8. Java ----&gt; java io / java nio / java net 学习资源汇总
  9. 复杂的xml资源
  10. label标签内含有input元素,点击事件会触发两次