MongoDB常用语句小册

最近MongoDB使用的比较多,但是毕竟不像MySQL这种用了好多年的数据库,语句信手拈来,有的时候还是需要想一想才能写出来,于是把常用的CRUD语句整理一下,方便查阅。

1、插入语句

格式

-- 插入一条数据,返回id
db.collection.insertOne(<document>
)-- 插入多条数据,返回id列表
db.collection.insertMany(
[<document>, <document>]
)-- 插入一条或多条数据,返回插入数量
db.collection.insert(
)
  1. 集合不存在,则创建集合
  2. insertOne和insertMany插入成功会返回成功结果和自动生成的id

  1. insert返回的是插入的记录数nInserted,不返回具体的id。
  • 插入一个文档,返回:
WriteResult({ "nInserted" : 1, "writeConcernError" : [ ] })
  • 插入多个文档,返回:
BulkWriteResult({"nRemoved" : 0,"nInserted" : 2,"nUpserted" : 0,"nMatched" : 0,"nModified" : 0,"writeErrors" : [ ]
})

例子

比如我要创建一个表:book,则插入语句为:

db.book.insertOne({"title": "mongodb删库到跑路","publishVersion": 1,"price": 66.88,"author": {"name": "小白"},"comments": [{"userName": "小白","comment": "很好,讲的很透彻","score": 4.5},{"userName": "老黑","comment": "差评,没跑成","score": 0.5}]
})

2、查询语句

格式

-- 1.查询全部文档,等价于 select * from collection
db.collection.find(
)-- 2.指定条件查询,等价于 select * from collection where field1=value1 and ……
db.collection.find(
{ <field1>: <value1>, ... }
)-- 3.指定条件模糊查询,等价于 select * from collection where field1 like "%value1%" and ……注意/是放在最外面
db.collection.find(
{ <field1>: /<value1>/, ... }
)-- 4.指定条件嵌套查询,需要用引号括起来
db.collection.find(
{ "<field1>. <fieldA>": <value1>, ... }
)-- 5.使用运算符查询,运算符列表:https://docs.mongodb.com/master/reference/operator/query/
db.collection.find(
{ <field1>: { <operator1>: <value1> }, ... }
)-- 6.查询指定字段,value为1时则为返回的字段。0则强制为不返回id(因为id会默认返回)。如果都为0,则返回除此以外的其他字段。
db.collection.find({}, {<field1>: 1,_id: 0
})-- 7.返回指定字段也可以用嵌套方式返回
db.collection.find({}, {"<field1>. <fieldA>": 1,_id: 0
})
-- 或者
db.collection.find({}, {<field1> : {<fieldA> : 1},_id: 0
})-- 8.查询数组中的文档,这里要注意,数组中的文档要完全匹配才能命中查询
db.collection.find({<arrayfield> : {<fieldA> : <value1>}
})

例子

我们用上面创建的book作为示例,进行查询。以下的查询都能命中book表里的这条数据。

-- 1.查询全部文档,等价于 select * from book
db.book.find(
)-- 2.指定条件查询,等价于 select * from collection where title = 'mongodb删库到跑路' and publishVersion = 2
db.book.find({title: "mongodb删库到跑路",publishVersion: 1}
)-- 3.指定条件模糊查询,等价于 select * from collection where title like "%删库%"
db.book.find({title: /删库/}
)-- 4.指定条件嵌套查询,嵌套的字段需要用引号括起来
db.book.find(
{ "author.name": "小白"}
)-- 5.in查询
db.book.find({publishVersion: {$in: [1]}
})-- 6.大于小于查询
db.book.find({price: {$lt: 80}
})-- 7.or查询
db.book.find({$or: [{title: /删库到跑路/}, {price: {$lt: 80}}]
})
-- 8.查询指定字段,value为1时则为返回的字段。0则强制为不返回id(因为id会默认返回)。如果都为0,则返回除此以外的其他字段。
db.book.find({}, {title: 1,price: 1,"author.name": 1,_id: 0
})-- 9.查询数组中的文档
db.book.find({"comments": {"userName": "小白","comment": "很好,讲的很透彻","score": 4.5}
})

3、更新语句

格式

-- 1.更新单个文档,也就是更新符合<filter>条件的第一个文档
db.collection.updateOne(<filter>, <update>, <options>)
-- 2.更新多个文档,也就是更新符合<filter>条件的全部文档
db.collection.updateMany(<filter>, <update>, <options>)
-- 3.更换文档,也就是符合<filter>条件的第一个文档,替换为<update>中的文档
db.collection.replaceOne(<filter>, <update>, <options>)

<filter>,是查询条件

<update>中,使用更新操作符(例如$set)来修改字段值。如果是replaceOne,则不能使用更新操作符,直接就是一个文档。

<options>可加可不加。

例子

-- 1.更新单个文档的值。等价于:update book set price = 88.88 where title = 'mongodb删库到跑路'
db.book.updateOne({title: "mongodb删库到跑路"
}, {$set: {price: 88.88}
})
-- 2.直接更换文档。(示例相当于直接删除了comments部分)
db.book.replaceOne({title: "mongodb删库到跑路"
}, {"title": "mongodb删库到跑路","publishVersion": 1,"price": 66.88,"author": {"name": "小白"}
})

4、删除语句

格式

-- 删除第一条符合查询条件的文档
db.collection.deleteOne(<filter>)
-- 删除全部符合查询条件的文档
db.collection.deleteMany(<filter>)
-- 删除匹配的文档
db.collection.remove(<filter>)

注意,filter使用与读取操作相同的语法,所以一切参考查询即可。

其实和更新一样,分为只命中第一条和命中全部符合条件的数据。

删除操作不会删除索引。

例子

db.book.deleteOne({title: "mongodb删库到跑路"
})

MongoDB常用语句小册相关推荐

  1. MongoDB常用语句

    记录一下MongoDB常用语句,顺带与SQL做个简单的对比. 1.查询(find) (1)查询所有结果 select * from articledb.article.find() (2)指定返回哪些 ...

  2. mongodb常用语句(集合操作)

    mongodb常用语句(集合操作) 查看集合帮助 db.songs.help(); 查看集合总数据量 db.songs.count(); 查看表空间大小 db.songs.dataSize(); 查看 ...

  3. mongodb常用语句以及SpringBoot中使用mongodb

    普通查询 某个字段匹配数组内的元素数量的,假如region只有一个元素的 db.getCollection('map').find({region:{$size:1}}) 假如region只有0个元素 ...

  4. Mongodb常用查询语句_笔记

    目录 前言 一.Mongodb简介 二.Mongodb常用查询语句 总结 前言 工作中会使用到Mongodb数据库,这是一个非关系型数据库,所以它的一些查询语句跟sql会不太一样,一时半会不能马上写出 ...

  5. mongodb修改数据语句_MongoDB中常用语句

    MOngoDB 删除语句 delete()删除 删除一个集合 db.collection.deleteOne() 删除多个集合 db.collection.deletMany(); remove()删 ...

  6. MongoDB常用28条查询语句(转)

    转自:MongoDB常用28条查询语句 1.查询所有记录 db.userInfo.find(); 相当于: select* from userInfo; 默认每页显示20条记录,当显示不下的情况下,可 ...

  7. MongoDB——常用命令

    小黄自我修炼之Mongo篇,课程视频来自于黑马程序员 点击跳转 关于Mongo的简介和安装网上一搜一大堆,小黄的博客用来记录如何使用Mongo 本文的例子来自于现实中出现的情况:文章评论功能,自始至终 ...

  8. VBA经典常用语句400句

    VBA经典常用语句400句 定制模块行为 (1) Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有 ...

  9. mysql 语句块语法_MySQL ------ MySQL常用语句的语法 (三十四)

    MySQL常用的语句语法 注意:1. | 符号用来指出几个选中中的一个,因此NULL | NOT NULL 表示给出null 或 not null 2.包含在方括号中的关键字或子句是可选的(如 [li ...

最新文章

  1. html单行注释符号
  2. FFmpeg代码实现视频剪切
  3. 阿里每天究竟要抵御多少攻击
  4. java的System.getProperty()方法可以获取的值
  5. 企业级Docker Registry开源工具Harbor的用户使用指南
  6. Python菜鸟入门:day16编程学习
  7. mysql解压版有配置文件么_3分钟安装MySQL5.7解压版
  8. 中国石油大学--生活学习简易FAQ
  9. python里面break放在哪_python中break怎么用
  10. springboot毕设项目同城上门喂遛宠物预约vfo34(java+VUE+Mybatis+Maven+Mysql)
  11. Excel多条件求和 SUMPRODUCT函数用法详解
  12. 7 125 kHz RFID技术
  13. 【数据异常校验】T检验或T测试(T-test)
  14. omap3630 linux i2c总线驱动分析,OMAP3630 Linux I2C总线驱动分析
  15. 车联网(智能车机)测试行业解决方案
  16. Python调用Unit闲聊对话API的应用
  17. AcWing 3725. 卖罐头
  18. 2020年全新开放式学习资源
  19. Office 2016 定制安装工具 v1.0 | Office 2016 自定义安装组件
  20. 计算机信息处理员证书可以在东莞入户,东莞入户办理:人才入户东莞有哪些职称考?可靠吗?...

热门文章

  1. 关于 floor 函数的返回值
  2. 硬件街机游戏开发,单片机游戏开发,CPLD/FPGA、ARM平台游戏开发群成立
  3. csgo的demo怎么录屏_CSGO如何观看DEMO 录像功能全解析
  4. JS getComputedStyle() 与 currentStyle
  5. w3cschool教你一天入门AJAX
  6. Java多线程学习 (超详细总结)
  7. Java中获取Exception的详细信息
  8. 史上最清晰ufo视频 土耳其新闻
  9. 谷歌信息技术(中国)有限公司和北京谷歌科技有限公司的官司
  10. 根据采购订单IDN进行MIGO过账的BAPI逻辑